修复git branch:refs现在显示refs / remotes / branch和refs / remotes / origin / branch

时间:2012-06-19 01:46:10

标签: git git-branch git-rebase git-remote

我把我的计算机上的一个本地分支搞砸了,把它改成其他分支。我想要改变,但我没有切换到我想要改变的分支,结果我搞砸了somebranch。我不知道如何在somebranch中撤消我的rebase screwup(如果有人知道将来知道它会很好)所以我决定,因为我在github上有somebranch我会在本地删除它然后从github拉出来。我不知道我做了什么,但我也搞砸了。最终我发现了我认为通过从远程原点拉入已删除的本地分支来重新创建已删除的本地分支的正确命令:

git fetch origin somebranch:refs/remotes/somebranch
git checkout -b somebranch --track origin/somebranch


在gitk中我可以看到现在有三件事:
somebranch,remotes / somebranch,remotes / origin / somebranch

但我所有其他分支只显示本地和一个远程。例如:
someotherbranch,remotes / origin / someotherbranch

我运行git for-each-ref并且ref / remotes / somebranch和ref / remotes / origin / somebranch指向同一个提交。

我的问题是两者之间的区别是什么,我如何摆脱ref / remotes / somebranch。我试过git update-ref -d remotes/somebranch,但它没有用。

1 个答案:

答案 0 :(得分:1)

你几乎拥有它。只需添加'refs':

git update-ref -d refs/remotes/somebranch

您可以通过在存储库的顶层发布来确认它已经消失了:

ls .git/refs/remotes