Git因提交而损坏

时间:2012-07-17 14:38:15

标签: git

我对git有点新,但我从他们的网站上读了Git书。 所以我开始在我的服务器上安装GitLab。

我之前正在研究SVN,因此第一次提交是SVN的导出。 我的朋友也在做同一个项目(他的名字叫卢卡斯)。

我创建了一个分支 origin / dev 以使 origin / master 完全稳定,然后在/ dev上开发。 我还创建了一个分支 feature258 我正在研究。当我尝试在合并我的强大功能之前拉 origin / dev 来获取更改时,我有这个:

$ git pull origin dev
fatal: object 18c29b4c26d7b0d34719d10ada6901c6024f91e6 is corrupted
fatal: The remote end hung up unexpectedly

似乎 18c29b4 对象是粉红色提交(cf ScreenShot),它只修改.gitignore文件

我跑了 git fsck --full 但是我所拥有的线索没有帮助我:

$ git fsck --full
dangling blob 0c87d2eb401651ec3045eb0248d54ed546206dbe
dangling blob 1cd17aadc009ba9d39d1137533d65107ca54da95

blob 0c和1c只是我在feature_258上次提交时修改过的一个文件。

我在Google上搜索Linus Torvalds方法和其他StackOverflow帖子超过3个小时没有找到一个好的解决方案。

如果它可以救我,也许我可以在BAD提交之前重新分支并重新开始我的工作(我保存在另一个目录中以确保)

Screenshot of SourceTree

1 个答案:

答案 0 :(得分:1)

通常这样:

fatal: The remote end hung up unexpectedly

讲述连接终止。也许(也许)这不是Git回购问题,而是某种系统问题。如果我是你,我开始检查repo中的文件权限。如果您使用的是gitolite,那么它将类似于:

chown git:git -R $GITOLITE/repositories/my_repo.git/
chmod u+rw -R $GITOLITE/repositories/my_repo.git/

然后,如果它不是问题,我试图克隆服务器上的repo

git clone $GITOLITE/repositories/my_repo.git/ ~/test_clone.git

还有一个建议 - 以用户 git 登录并检查git版本。