預期行爲
我編輯文件1,提交,這樣做混帳推從未完成 - 只到達共線
$ git push
NOTICE: Only authorized blah blah blah...
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 676 bytes | 0 bytes/s, done.
Total 7 (delta 4), reused 0 (delta 0)
To ssh://[email protected]:/opt/git/fooBar.git
28ad03d..73ae492 master -> master
$
問題
然後,我在同一個項目中編輯的文件2,承諾並做到了這一點:
$ git push
NOTICE: Only authorized blah blah blah...
Counting objects: 10, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (10/10), 1.42 KiB | 0 bytes/s, done.
Total 10 (delta 4), reused 0 (delta 0)
^C
請注意我是如何在最後使用CTRL-C(^C
)?那是因爲它從未完成。這是不是預期的行爲。
無法應對機制
所以我:
cd ..
mv fooBar/ fooBar_bak/
git clone ssh://[email protected]:/opt/git/fooBar.git
cd fooBar
編輯一些其他的文本文件(只是增加了一個空行),推,和它的工作。這意味着在推送失敗之後,我在和之前成功推送了相同的本地/遠程存儲庫。
但編輯它以前不喜歡的file2?推送從未完成。同樣的事情與它不喜歡的file3。我沒有看到這些文件的特別之處。
那麼,file2和file3是UTF-8和file1是ASCII,但這應該沒關係。應該是?
我嘗試了git push hangs after Total line的所有解決方案,但都沒有爲我工作。
我真的不明白strace -efile -f git push
的輸出,但是沒有任何東西跳到我身上。
我等了。但這不是一個大回購或一個大文件。
我在我的機器上使用Ubuntu 16.04,在我的機器上使用git 2.7.4,在CentOS服務器上使用git 1.7.1。我沒有安裝msysgit,git-for-windows或cygwin。
git push -u origin master
也沒有工作。
git config http.postBuffer 524288000
沒有什麼區別。
GIT_CURL_VERBOSE=1
和GIT_TRACE=1
沒有效果。
git config --global core.askpass "git-gui --askpass"
沒有做任何事情,可能是因爲我沒有安裝git-gui。
@ RonanDejhero在這裏的建議:https://stackoverflow.com/a/21032615/1128668是什麼讓我看到,一些文件可以改變,承諾和推動,有些不能。我嘗試複製已更改的文件,手動更改文件,並做出稍微不同的更改:沒有用。
在服務器上,我做了sudo chown -R me.git-users /opt/git/
,但這也沒有什麼不同。當我過去遇到這樣的問題時,這似乎有幫助。
我在我的本地倉庫和服務器上做了一個git gc
/opt/git/fooBar.git。沒有快樂。
更新
我刪除了我的本地回購,克隆,編輯文件2(這混帳不喜歡前正在編輯)由只添加一個空行。承諾,推動,它的工作!然後我評論了十幾行未使用的代碼,承諾推送,並且工作!我可以介紹一個角色或者git不喜歡的東西嗎?
你還等什麼,在'Total'線後,是另一端回來,並說:「是的,我已經接受了你的裁判更新」或「不,我拒絕你的更新」(每個分支一個答覆或標籤更新你發送,在這種情況下,只是一個分支)。因此問題*在另一端*,可能是由於錯誤的掛鉤。它需要從那個端點進行診斷。 – torek