如何重新变基到其他分支?
How to re-rebase to other branch?
我在一个专门的本地分支机构 dev
工作了一段时间,通过在组织远程 master
分支机构上的标准重新定位:
o-----o-----o dev (local branch)
/
--o-----o--- master
o'-----o'-----o' dev
/
--o-----o-----o-- master
etc.
目前还不是,组织切换到另一个分支作为主要发展的基础。
o'-----o'-----o' dev
/
----o-----o-----o-- master
\
o-----o-----o-----o-----o-- new_master
由于超出此处主题的原因,在此之前我无法将我的更改与远程 master
同步,并继续在本地 master
上冲浪,从远程主机进一步更新并以 dev
.
为基础
现在,在使用我的结果之前,该组织希望我的工作重新基于 new_master
。
o'-----o'-----o'-- dev (former)
/ | how/when?
----o-----o-----o-----o-----o-+--- master
\ | how/when?
o-----o-----o-----o-----o---- new_master
\
o''-----o''-- dev (new: maintain old dev commits)
我的猜测是,我必须等待提交后 master
和 new_master
(x) 之间的合并,我目前基于 with dev
(a),在我可以直接在 new_master
:
上再次变基之前(在 (x) 之后或在 (x) 处)
o'-----o'-----o' dev (former)
/
----o-----o-----a-----b-----c--- master
\ \ merge?
o-----o-----o-----o-----x-- new_master
\
o''-----o''-- dev
这是正确的,还是我在最终合并 dev
时遗漏了一些无意的历史重写,特别是 new_master
?
这样做是这样的:
git rebase --onto new_master master dev
所以....采用所有 dev
修订,丢弃 master
上的修订,将它们放在 new_master
之上
我在一个专门的本地分支机构 dev
工作了一段时间,通过在组织远程 master
分支机构上的标准重新定位:
o-----o-----o dev (local branch)
/
--o-----o--- master
o'-----o'-----o' dev
/
--o-----o-----o-- master
etc.
目前还不是,组织切换到另一个分支作为主要发展的基础。
o'-----o'-----o' dev
/
----o-----o-----o-- master
\
o-----o-----o-----o-----o-- new_master
由于超出此处主题的原因,在此之前我无法将我的更改与远程 master
同步,并继续在本地 master
上冲浪,从远程主机进一步更新并以 dev
.
现在,在使用我的结果之前,该组织希望我的工作重新基于 new_master
。
o'-----o'-----o'-- dev (former)
/ | how/when?
----o-----o-----o-----o-----o-+--- master
\ | how/when?
o-----o-----o-----o-----o---- new_master
\
o''-----o''-- dev (new: maintain old dev commits)
我的猜测是,我必须等待提交后 master
和 new_master
(x) 之间的合并,我目前基于 with dev
(a),在我可以直接在 new_master
:
o'-----o'-----o' dev (former)
/
----o-----o-----a-----b-----c--- master
\ \ merge?
o-----o-----o-----o-----x-- new_master
\
o''-----o''-- dev
这是正确的,还是我在最终合并 dev
时遗漏了一些无意的历史重写,特别是 new_master
?
这样做是这样的:
git rebase --onto new_master master dev
所以....采用所有 dev
修订,丢弃 master
上的修订,将它们放在 new_master