我把我的计算机上的一个本地分支搞砸了,把它改成其他分支。我想要改变,但我没有切换到我想要改变的分支,结果我搞砸了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
,但它没有用。
答案 0 :(得分:1)
你几乎拥有它。只需添加'refs':
git update-ref -d refs/remotes/somebranch
您可以通过在存储库的顶层发布来确认它已经消失了:
ls .git/refs/remotes