【问题标题】:Merge branch, but with one modified commit合并分支,但有一个修改的提交
【发布时间】:2014-05-23 14:26:19
【问题描述】:

我有一个来自合作者的 git 分支,我想合并它。问题是早期提交中有一个错误(例如必须更改提交消息或必须修复某些 EOL 字符)。

如果我在本地分支中挑选提交然后进行交互式 rebase + 编辑,我需要 2 分钟来解决这个问题。

问题是,如果我这样做了,那么协作者的原始分支将不再被各种工具视为合并,首先是 GitHub。

是否有允许我将分支与修复合并并仍将原始分支视为合并的工作流?

【问题讨论】:

    标签: git merge branch branching-and-merging


    【解决方案1】:

    如果您想保留合作者的原始分支,请先执行您的cherry-pick+rebase,然后在git merge -s ours badbranch 中添加“正确的错误空白”消息,然后如果您还没有在您的主分支上,请正常合并到该分支。

    【讨论】:

      【解决方案2】:

      这是我合并需要小修复的分支的工作流程,改编自 accepted solution

      我们要合并的分支是collaborator/fix-bug-10

      首先,我们建立一个本地分支,并挑选协作者分支中的所有提交。

      git checkout master
      git branch collaborator-fix-bug-10 # hyphen instead of slash
      git checkout collaborator-fix-bug-10
      git cherry-pick COMMIT1
      git cherry-pick COMMIT2
      git cherry-pick COMMIT2
      

      然后我们解决问题。

      git rebase -i master # show commits between HEAD and master
      # fix problems
      git rebase --continue
      

      之后,我们将协作者的分支与我们的分支“合并”。这是公认解决方案的要点。

      git merge --strategy ours collaborator/fix-bug-10
      

      最后我们将本地分支合并到我们的主分支中。

      git checkout master
      git merge --ff-only collaborator-fix-bug-10
      git branch --delete collaborator-fix-bug-10
      

      【讨论】:

        【解决方案3】:

        cherry-pick 是从哪里进入的呢?在原始分支上进行交互式 rebase,编辑提交消息,然后正常合并分支。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-12
          • 2019-05-20
          • 2021-12-29
          • 2016-03-23
          • 2012-03-02
          • 2018-05-29
          相关资源
          最近更新 更多