Git错误:致命:错误的对象refs/heads/xxx,删除时会发生什么?

dphi5xsq  于 2023-08-01  发布在  Git
关注(0)|答案(1)|浏览(157)

当我提交到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分支中,因为它还是会出现?还是我需要拉一个新版本?把我正在做的东西推到大师级,然后从那里抓取所有东西的新版本,这样会更好吗?
只是想知道接下来会发生什么。

w8f9ii69

w8f9ii691#

master 2不是有效的引用名称。其他以2结尾的文件也不是自然的Git内部文件。由于master 2是一个文件,因此您可以查看它的内容。

cat "master 2"

字符串
在一个普通的.git/refs/heads/foo文件中,它应该有一个提交的sha1值。从错误fatal: bad object refs/heads/master 2来看,我认为“master 2”包含了别的东西。即使它看起来像一个sha1value,它也不是一个有效的值,或者没有实际的对象。您可以备份“master 2”和其他以2结尾的文件,然后将它们从.git/中删除。它不影响master
此外,最好找出这些异常文件是如何创建的,并加以纠正。

相关问题