预期行为
我编辑文件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