gpt4 book ai didi

推送时 Git 无法解析引用

转载 作者:IT王子 更新时间:2023-10-29 01:26:49 24 4
gpt4 key购买 nike

我在使用 Git 时遇到问题。由于未知原因,我的 master 分支不知何故被破坏了。我有一个我想推送的本地提交,但是当我推送时,我得到了这个:

git push origin master
error: unable to resolve reference refs/remotes/origin/master: No such file or directory
error: cannot lock the ref 'refs/remotes/origin/master'.
Everything up-to-date

我在其他板上看到过这个问题,但通常指的是 pull 而不是推送。尽管如此,我已经尝试了他们的解决方案,但无济于事:

  1. 尝试修改我当前的提交和推送
  2. 使用 git gc --prune=now 清理了我的 git 存储库
  3. 已尝试 rm .git/refs/removes/origin/master

没有一个能解决我的问题。有什么想法或想法吗?

最佳答案

(来自@NeTeInStEiN 的有值(value)的 tl;dr:

核选项是rm -rf .git/refs/remotes/origin,这里就是这样)

编辑: 我在我自己的一个 repo 协议(protocol)中遇到过这种行为的一部分,我可以让 git 重现 f-e-r 失败而无需 rm .git/refs/remotes/origin/master 破解:

  • 克隆一个仓库
  • 删除源的主要分支(它的 HEAD 附加到的分支)
  • 在克隆中运行 git fetch --prune

获取将产生悬空引用警告,git for-each-ref 将失败并显示一条熟悉的消息:

~/sandbox/20/buddy$ git fetch --prune
From /home/jthill/sandbox/20/source/.
x [deleted] (none) -> origin/master
(refs/remotes/origin/HEAD has become dangling)
~/sandbox/20/buddy$ git f-e-r
fatal: missing object 0000000000000000000000000000000000000000 for refs/remotes/origin/HEAD

但这并没有破坏推送,我已经尝试了 push.default 的每个设置,也没有破坏 git update-ref -d

但是,谷歌搜索推送消息确实让我得到了这个:

I had just rebooted from a BSOD the other day [...] then git push. And that’s when I got a complaint about “Unable to resolve reference refs/remotes/origin/master…”. [...] So, I opened up the master file and it was full of spaces! Well, that’s no good. In order to fix it, I did this: [your rm, and then git fetch]


请参阅上面的评论,了解详细情况,tl;dr 是,因为这些是远程引用,git fetch 完全刷新,并且因为损坏是这样的 for-each-refgit update-ref根本无法工作,核选项 rm -rf refs/remotes/origin; git fetch 保证正确恢复远程。

在其他情况下,如果没有简单的方法来恢复损坏的 refs 或出于好奇,find .git/refs/remotes/origin -type f 来检查锁或使用 reflogs (这些文件在 .git/logs 中)恢复内容会有所帮助,但这里没有必要。我想我错过了一个赌注,因为我没有先执行 find,来自 kill -9ed 早期命令的 *.lock 文件可能在这里,但我怀疑 ref 模棱两可,f-e-r 是我迈出的第一步。


关于推送时 Git 无法解析引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23749886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com