我有一个重构/清理分支cleanup
,我在那里清理技术债务。经过一个周期后,我将此分支合并回master
。
几个星期后,我有时间清理一些,我想恢复分支,而不是创建一个新分支。所以我提取master
,然后将cleanup
的本地分支指针移到HEAD
:
> git show HEAD
commit dd61...
> git branch -f cleanup dd61...
> git checkout cleanup
在此之后,我可以拉动并推动历史看起来正确。但是当我试图引入最新的变化并进行改变时,我遇到了一些微妙的问题。我通常的工作流程是重新定义当前分支:
> git pull origin master
> git rebase master
但是当我使用复活的分支执行此操作时,即使我没有指定git pull
,--rebase
也已经开始合并,甚至可能已经开始了。{/ p>
我的猜测是我应该也移动了远程分支指针。我在上面cleanup
之后推了checkout
,但可能还不够?
有人可以解释我的情况发生了什么,以及我如何正确地恢复共享(=被推送到origin
)分支?
答案 0 :(得分:1)
将指针移至dd61
后,您应该push origin cleanup --force
将其移至origin