我知道这是反模式,但是我有一个LOCAL分支(并且没有其他分支基于此分支):
D <-- C <-- B <-- A <-- HEAD
我没有测试就做到了,我需要变得像这样
D <-- C <-- A <-- HEAD
(我在B中添加了一些要删除的软件包)
然后(如果一切正常),我想这样做:
D <-- C <-- A <-- B <-- HEAD
,因此,如果我可以保留B中所做的更改,以便能够选择是否要重新应用这些更改,那将是很棒的选择。
答案 0 :(得分:2)
git rebase -i D
,其中D是落实D的哈希(commit-ish)。
例如,这会打开您的编辑器,其中包含一个包含D的提交列表的文件
pick A
pick B
pick C
pick D
按照文件底部注释中的说明,根据需要删除或重新排列提交,然后保存并关闭文件。
将按所需顺序逐一应用提交,如果在应用提交时遇到任何问题,将停止并指导您解决问题。
答案 1 :(得分:2)
git tag save-B B
git rebase --onto B~ B..
,然后当您想B
返回时,可以选择save-B
或合并它。