0

我将计算机上的本地分支重新定位到其他分支,从而搞砸了它。我想变基,但我没有切换到我想变基的分支,结果我搞砸了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了,但没有用。

4

1 回答 1

1

你几乎拥有它。只需添加“参考”:

git update-ref -d refs/remotes/somebranch

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

ls .git/refs/remotes
于 2012-06-19T04:08:28.480 回答