Git在写对象时挂起

时间:2011-07-31 02:45:09

标签: git

我正在尝试git push -u origin master它只是挂在

Writing objects:  99% (219/220), 12.65 MiB | 97 KiB/s

12.65部分转移。当我退出流程并再次运行时,它会恢复到99%,但永远不会完成,与以前一样。

它永远不会成功推动。这是最初的提交。

10 个答案:

答案 0 :(得分:171)

我遵循了VonC的建议:

git config --global http.postBuffer 524288000

供将来参考,基于评论:

500 MB: 524288000 (as posted in the original answer)
1 GB: 1048576000
2 GB: 2097152000 (anything higher is rejected as 'out of range')

答案 1 :(得分:29)

这是因为repo目录中存在巨大的,未签名的文件。糟糕。

修改

挂起是因为该文件需要很长时间才能上传。该文件不应该包含在推送中。

答案 2 :(得分:7)

我遇到同样的问题(编写对象%16)然后致命。我通过保存当前更改并克隆新存储库来解决此问题,然后将修改后的文件复制到其中。

EG。假设当前存储库是A,那么您需要做的就是:

  1. mv A B
  2. git clone A
  3. mv B/* A/
  4. rm -rf B
  5. 然后提交并推送,一切正常。它将移动的文件识别为已修改:)

答案 3 :(得分:3)

就我而言,我使用的是git文件夹,其权限较差,与回购存储在同一驱动器上,但是即使使用授权的登录用户,对于ssh来说也可能相同。

然后检查您是否有正确的权利在远处回购上写信。

示例:

初始化本地和远程回购

git init /tmp/src
git init --bare /tmp/dst
cd /tmp/src

将远程仓库添加到源中

src > git remote add dest /tmp/dst

模拟问题

src > chmod -R 555 /tmp/dst

添加并推送伪造文件

src > touch a && git add a && git commit -m 'demo'
src > git push --set-upstream dest master
src > git push
Counting objects: 3, done.
Writing objects: 99% (2/3), 202 bytes | 0 bytes/s.

Git挂起

解决方案

src > chmod -R 775 /tmp/dst

答案 4 :(得分:2)

在我看来,这是文件的大小。通过添加具有所需扩展名的.gitignore文件,我可以忽略大多数不需要推送的文件。

答案 5 :(得分:1)

git clean -f -n解决了我的问题。有许多未检测到的未跟踪文件。 但要小心,因为这将删除目录中的文件

答案 6 :(得分:1)

在我的情况下,我的网络上传速度很慢,我想要推送的文件很大,诀窍是使用git LFS(大文件存储),上传大文件更耐心,你可以找到一个{ {3}}

答案 7 :(得分:0)

就我而言,我试图在不遵守公司规定的情况下进行推销。 后来我了解到,我们应该以“ MOBIL-XXXX”开始提交消息,其中XXXX是我们在Jira中分配的编号(用于跟踪开发情况的另一种工具)。

请确保检查您的公司是否具有类似的约束规则。

答案 8 :(得分:0)

我在Windows 10计算机上遇到了同样的问题,writing objects挂起了,但是情况略有不同。

我遇到的问题仅是在尝试向存储库中添加新文件时。如果我更新存储库中已经存在的文件,则一切正常,并且文件大小是否很大都没有关系。通常,我试图添加新脚本。

我尝试了Internet上找到的所有其他解决方案,但是对于我来说,没有任何效果,而实际上我尝试的最后一件事也没有效果。看来这是由于特定驱动器和文件夹的某些Windows权限而导致,即使我使用管理员帐户登录并以管理员身份运行该应用程序,该应用程序也无法写入这些特定文件夹或更新文件。因此,此命令:

attrib -r +s D:\foldername 

为我解决了这个问题。

只需将其发布在这里,也许有人遇到与我相同的问题。

答案 9 :(得分:0)

唯一对我有用的解决方案是使用此命令 rm -rf .git* 从我的项目中删除版本跟踪。 然后为我的项目初​​始化新版本跟踪。