我将计算机上的本地分支重新定位到其他分支,从而搞砸了它。我想变基,但我没有切换到我想变基的分支,结果我搞砸了somebranch
。我不知道如何撤消我的 rebase 搞砸somebranch
(如果有人知道将来知道这将是一件好事)所以我决定既然我somebranch
在 github 上,我就在本地删除它,然后从 github 拉它。我不知道我做了什么,但我也搞砸了。最终,我找到了我认为正确的命令,可以通过从远程来源拉入来重新创建已删除的本地分支:
git fetch origin somebranch:refs/remotes/somebranch
git checkout -b somebranch --track origin/somebranch
在 gitk 我可以看到现在有三件事:
somebranch,remotes/somebranch,remotes/origin/somebranch
但我所有的其他分支只显示一个本地和一个远程。示例:
someotherbranch、remote/origin/someotherbranch
我跑了git for-each-ref
, ref/remotes/somebranch 和 ref/remotes/origin/somebranch 都指向同一个提交。
我的问题是两者之间有什么区别以及如何摆脱 ref/remotes/somebranch。我试过git update-ref -d remotes/somebranch
了,但没有用。