我和Git有问题.由于未知原因,我的主分支已经被破坏了.我有一个本地提交,我想推高,但当我推,我得到这个:
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
Run Code Online (Sandbox Code Playgroud)
我已经在其他主板上看到了这个问题,但通常指的是拉动而不是推动.尽管如此,我已经尝试过他们的解决方案,但无济于事:
git gc --prune=now
rm .git/refs/removes/origin/master
没有人解决我的问题.有什么想法或想法吗?
jth*_*ill 36
(值得一试;来自@NeTeInStEiN的博士:
核选项是rm -rf .git/refs/remotes/origin
,这是它在这里采取的)
编辑:我在我自己的一个回购中遇到了这种行为的一部分,我可以得到git来重现没有rm .git/refs/remotes/origin/master
hack 的fer故障:
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
Run Code Online (Sandbox Code Playgroud)
但这并没有打破推动力,我已经尝试过每一个环境push.default
,也没有打破git update-ref -d
.
然而,谷歌搜索推送消息确实让我这样:
请参阅上面的评论,吹嘘,tl; dr是,因为这些是远程参考,git fetch
完全刷新,并且由于损坏是这样的,for-each-ref
并且git update-ref
根本无法工作,核选项rm -rf refs/remotes/origin; git fetch
保证正确恢复远程.
在其他情况下,如果没有简单的方法来恢复损坏的refs或好奇心,find .git/refs/remotes/origin -type f
检查锁定或使用reflogs(那些文件都在.git/logs
)恢复内容会有所帮助,但这里没有必要.我认为我错过了赌注,因为没有做第find
一个,*.lock
来自kill -9
早期ed命令的文件看起来可能在这里,但我怀疑一个模棱两可的ref和fer是我的第一步.
归档时间: |
|
查看次数: |
39524 次 |
最近记录: |