当我提交到git时,我开始收到这样的消息:
warning: The last gc run reported the following. Please correct the root cause
and remove .git/gc.log
Automatic cleanup will not be performed until the file is removed.
fatal: bad object refs/heads/master 2
fatal: failed to run repack
字符串
进入.git文件夹:
danieldonaldson@Daniels-Mac-mini wb2-web % cd .git
danieldonaldson@Daniels-Mac-mini .git % ls
COMMIT_EDITMSG ORIG_HEAD hooks info
COMMIT_EDITMSG 2 config index logs
FETCH_HEAD description index 2 objects
HEAD description 2 index 3 packed-refs
HEAD 2 gc.log index 4 refs
danieldonaldson@Daniels-Mac-mini .git % cd refs
danieldonaldson@Daniels-Mac-mini refs % cd heads
danieldonaldson@Daniels-Mac-mini heads % ls
master 2 webgame
型
我可以看到我假设有问题的文件。我目前正在使用分支网页游戏。
danieldonaldson@Daniels-Mac-mini heads % git branch
warning: ignoring ref with broken name refs/heads/master 2
master
tournamentmods
* webgame
danieldonaldson@Daniels-Mac-mini heads %
型
显示了我所期望看到的。如果我移除“master 2”的头,我是否可以将我正在处理的东西合并到master分支中,因为它还是会出现?还是我需要拉一个新版本?把我正在做的东西推到大师级,然后从那里抓取所有东西的新版本,这样会更好吗?
只是想知道接下来会发生什么。
1条答案
按热度按时间w8f9ii691#
master 2
不是有效的引用名称。其他以2
结尾的文件也不是自然的Git内部文件。由于master 2
是一个文件,因此您可以查看它的内容。字符串
在一个普通的
.git/refs/heads/foo
文件中,它应该有一个提交的sha1值。从错误fatal: bad object refs/heads/master 2
来看,我认为“master 2”包含了别的东西。即使它看起来像一个sha1value,它也不是一个有效的值,或者没有实际的对象。您可以备份“master 2”和其他以2
结尾的文件,然后将它们从.git/
中删除。它不影响master
。此外,最好找出这些异常文件是如何创建的,并加以纠正。