取消合并而不进行合并提交和rebase

时间:2016-06-03 10:53:58

标签: git

我正在寻找解决此问题的方法:

我有分支“develop”和分支“feature-1”

我正在合并“feature-1”以开发并继续开展工作。

现在我犯了错误并创建了“feature-2”分支,指向“feature-1”而非“develop”并将更改推送到服务器

D1 - D2 - D3 - D4 - D5
    \        /
     F1 - F2 - F3 - F4
                   \
                    F21 - F22

现在我想合并“feature-2”到“develop” 我使用merge也合并F3提交,但没有创建合并提交(不知道为什么)

所以我有这个:

D1 - D2 - D3 - D4 - - - - - - D5
    \        /                /
     F1 - F2 - F3 - F4       /
                   \        /
                    F21 - F22

我不想恢复这个并且使用rebase feature-2来开发

有这个:

                  F21 - F22
                  /      \
D1 - D2 - D3 - D4 - - - - D5 
    \        /                
     F1 - F2 - F3 - F4

如果没有合并提交,我如何还原该合并并在服务器上修复此问题。

1 个答案:

答案 0 :(得分:0)

找到答案:

  1. develop分支重置为原始状态,取消不在git log中的合并提交

    git reset --hard origin / develop

  2. feature-2移至指向主要而不是要素-1

    git rebase --onto develop feature-1 feature-2

  3. 重写分支的原始状态

    git push origin feature-2 --force

  4. 合并功能-2以开发

    git merge feature-2

  5. 另一种解决方案就像评论樱桃选择中提到的@Vishwanath一样,希望从开发中提交给新分支。