今天我想rk的sdk包裏面的一些東西提交到個人git服務器上,結果,老是報錯,折騰了一下午,結果才解決。html
首先看看我提交代碼的時候,報錯的信息:git
git.exe push --progress "origin" master:mastergithub
Counting objects: 43142, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (25108/25108), done.
Writing objects: 100% (43142/43142), 824.64 MiB | 26.18 MiB/s, done.
Total 43142 (delta 14030), reused 43141 (delta 14030)
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
Everything up-to-datebash
git did not exit cleanly (exit code 1) (717417 ms @ 2016/11/1 15:57:57)服務器
網上搜了一下,我覺得跟上次我pull的時候報錯git clone: error: RPC failed; result=18, HTTP code = 200 解決辦法的解決方法同樣哦,結果我始終修改http.postBuffer的大小,改大改小都試過,但提交到必定大小之後,總是會出現上述的報錯信息。ssh
後面結合http://stackoverflow.com/questions/7489813/github-push-error-rpc-failed-result-22-http-code-413中的內容,以及http://blog.csdn.net/passion_wu128/article/details/8234901博文的內容,我瞭解到上述的這種報錯:curl
這跟Git的postBuffer變量值沒有關係。post
(若是code = 411,則是由postBuffer引發的,能夠在客戶端執行url
git config --global http.postBuffer 52428800,改成最大50M)spa
解決方法其實能經過ssh提交來解決,因此實在沒辦法,我使用ssh來提交,而不用以前的http方法,最後證實可行。
這裏記錄下使用ssh提交代碼和生成公鑰的過程。
這個過程,我借鑑http://www.cnblogs.com/ChenRihe/p/Git_TortoiseGit_SSH.html的部份內容作參考:
1.若是沒配置過用戶名和密碼(配過也再來一次咯):
git config --global user.name "John Doe"
git config --global user.email "johndoe@doebrothers.com"
下圖抄的..
2.建立SSH和複製公鑰到剪切板(如複製如下代碼執行出現參數過多提示,通常因爲字符問題,需本身手打如下代碼)
ssh-keygen –t rsa –C "johndoe@doebrothers.com"
clip < ~/.ssh/id_rsa.pub
下圖抄的..
3.生成ssh公鑰之後,咱們先cat一下公鑰,在git bash中輸入cat ~/.ssh/id_rsa.pub,這個時候會顯示出咱們生成的公鑰,這時候拷貝公鑰,在咱們git的帳戶中添加ssh就OK。
4.設置remote url,在git bash中輸入:
git remote set-url origin git@github.com:GitRepoName.git
github.com是你的服務器域名,例如你用開源中國的碼雲的話,這個地方就是git@git.oschina.net
GitRepoName.git是git倉庫名。
5.提交代碼,git push origin master
使用ssh提交代碼,比使用http不但能解決413的大文件報錯,同時還能提升提交代碼的速度,從我提交的速度來看,他最少可以提高100%的速度,因此仍是使用ssh吧。
轉載註明出處:http://www.cnblogs.com/lihaiping/p/6021813.html