我有以下结构:
F2: [F21] - [F22] - [F23]
/
F: [F1] - [F2] - [F3] - [F4] - [F5]
/
M: [M1]
并且,我在F
分支中进行了压缩(rebase)提交,导致以下内容:
F2: [F1] - [F2] - [F3] - [F21] - [F22] - [F23]
/
M: [M1]
\
F: [F']
并合并为主人:
F2: [F1] - [F2] - [F3] - [F21] - [F22] - [F23]
/
M: [M1] - [M2]
\ /
[F']
现在,我想基本上将F2
重新定义为F
,但这需要我解决路径上的冲突,主要是F1
,F2
,{{1}与F3
。我想要的结果是:
F'
是否有可能以某种方式暗示rebase,它所看到的更改是我提交的一部分,所以我不需要解决它们?
答案 0 :(得分:1)
最简单的方法是告诉rebase跳过那些带有--interactive
标志的提交。在F2上,执行:
git rebase --interactive [F']
你会看到git准备做什么:
pick c411f13 F1 // <- delete this line or use drop instead of pick
pick 8f9b902 F2 // <- delete this line or use drop instead of pick
pick 7693586 F3 // <- delete this line or use drop instead of pick
pick 1fd0615 F21
pick 26fd795 F22
pick 2fb0408 F23
有关更多信息,请参阅以下评论,# d, drop = remove commit
和# If you remove a line here THAT COMMIT WILL BE LOST
非常有趣。
保存并退出,git将按您的要求执行操作:跳过第一次提交并应用其他提交。