我想知道如何在两个旧提交之间插入一个新提交(提交 X),但是(这是复杂的部分)我想在“分支点”(在本例中为提交“B”)之前执行此操作).
例如:
之前:
A -- B -- C <<< master
\
D -- E <<< branch
之后:
new commit
|
|
A -- X -- B -- C <<< master
\
D -- E <<< branch
我看到很多很好的答案,当这里没有分支时,它们工作得很好:
但是当在分支点之前插入一个提交时,这些选项都不起作用,因为它们在变基之后修改了“上游”树的其余部分。
最好的方法是什么?
对于上下文,我发现自己经常需要这样做的原因是当我开始一个新的功能分支时,我意识到(在几次提交之后)一些更改应该更早地在 master 分支上完成,而不是新功能分支,例如,修改一些 .vscode 文件或对更多属于 master 分支而不是功能分支的代码进行一些结构重构。
在这种情况下,这是“正确的做法”吗?
这些都是普通的 rebase.... 在 old
B
中设置一个指针,这样运行第二个 rebase 就更简单了。
git branch old-B B
然后根据您的喜好对
master
分支进行 rebase。当你处理好之后,像这样重新设置另一个分支:
git rebase old-B other-branch --onto new-B