git rebase已经重新分支

时间:2016-08-02 15:30:58

标签: git

我有以下结构:

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,但这需要我解决路径上的冲突,主要是F1F2,{{1}与F3。我想要的结果是:

F'

是否有可能以某种方式暗示rebase,它所看到的更改是我提交的一部分,所以我不需要解决它们?

1 个答案:

答案 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将按您的要求执行操作:跳过第一次提交并应用其他提交。