代码之家  ›  专栏  ›  技术社区  ›  Tryliom

Git将2个旧提交移动到现有分支

git
  •  1
  • Tryliom  · 技术社区  · 7 年前

    我不想弄坏东西,所以我更喜欢在这里问。我不小心在一个分支上创建了一个特性进行测试,我尝试将提交移动到新分支,并将它们基于master git rebase 但是我把3提交放在新特性的分支中,就像这样:
    N = New feature
    T = Test branch
    M = Master

    M
    |\
    | T
    N - T1 - T2 - N1
    

    我想要得到:

    M
    |\
    | T - T1 - T2
    N - N1
    

    我已经尝试了一些REBASE,但是在源代码中,我只有三个提交的分支测试。

    1 回复  |  直到 7 年前
        1
  •  2
  •   iBug    7 年前

    让我们把这个问题分开:复制提交并删除它们。你不能直接“移动”。

    第一,复制两个 T 提交给 T 分支机构 cherry-pick . 你可以抓住你想要移动的两个承诺的sha,然后按照以下步骤操作

    git checkout test
    git cherry-pick <commit 1> <commit 2>
    

    然后,从 N 分支

    git checkout new
    git rebase HEAD~4
    

    找到这两个提交并使用从Git弹出的文本编辑器删除它们,然后保存文件并退出。剩下的由吉特来做。