2

我有一个 cygwin 和附带的 git (1.7.9)。我有一个存储库,位于网络共享驱动器 (r:/) 上。我所有的同事都在 windows 上使用 git(并且 repo 是用 windows MSYS git 1.8.3.msysgit.0 创建的)。我的操作系统是Win 7。

当我执行 git push 时,它有时会以“致命 - 坏对象错误”结束。奇怪的是,如果我连续执行 3 次 git push,它会正确执行最后一次。

有人知道为什么会这样吗?推 3 次是否安全?

rb@L18021: ~math/test/pc_env$ git push
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 702 bytes, done.
Total 7 (delta 5), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
fatal: bad object e4cecab43c0122ade56f6ff6e13d5c98e1462968
fatal: bad object e4cecab43c0122ade56f6ff6e13d5c98e1462968
error: unpack should have generated e4cecab43c0122ade56f6ff6e13d5c98e1462968, but I can't find it!
To /cygdrive/r/E51/Internal/850_DevTempRepo/LAS_PAS.git
 ! [remote rejected] master -> master (bad pack)
error: failed to push some refs to '/cygdrive/r/E51/Internal/850_DevTempRepo/LAS_PAS.git'
rb@L18021: ~math/test/pc_env$ git push
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 702 bytes, done.
Total 7 (delta 5), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
fatal: bad object e4cecab43c0122ade56f6ff6e13d5c98e1462968
fatal: bad object e4cecab43c0122ade56f6ff6e13d5c98e1462968
error: unpack should have generated e4cecab43c0122ade56f6ff6e13d5c98e1462968, but I can't find it!
To /cygdrive/r/E51/Internal/850_DevTempRepo/LAS_PAS.git
 ! [remote rejected] master -> master (bad pack)
error: failed to push some refs to '/cygdrive/r/E51/Internal/850_DevTempRepo/LAS_PAS.git'
rb@L18021: ~math/test/pc_env$ git push
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 702 bytes, done.
Total 7 (delta 5), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
To /cygdrive/r/E51/Internal/850_DevTempRepo/LAS_PAS.git
   84e96ef..e4cecab  master -> master
rb@L18021: ~math/test/pc_env$ git --version
git version 1.7.9
4

1 回答 1

1

尝试更新 git。为此,再次运行 cygwin 的 setup 二进制文件(只需使用默认值来更新整个 cygwin 环境)。

我想我有描述的问题,但我只尝试了两次。正如 Cupcake 在评论中所建议的那样,我认为问题的原因是 cygwin 附带的旧 git 版本。我今天从 1.7.9 更新到 2.0.4 并且它有效。

我不知道在你的情况下推 3 次是否安全。

于 2014-08-27T08:10:17.680 回答