从很久以前合并的No-FF

时间:2012-07-25 07:45:51

标签: git github git-merge fast-forward

在我们的Git存储库中,我们有一些应该与--no-ff合并但未合并的分支的合并。这些合并是很久以前的。

有没有办法强制/插入提交,就像我们使用--no-ff参数运行那些旧的合并一样?

该项目的一位超级人员喜欢GitHub的网络视图,并希望能够看到各个分支,这些分支在快进时都会合并为一行。

1 个答案:

答案 0 :(得分:2)

如果您不介意拥有新的主要/主要分支(或覆盖旧分支 - 但请记住,重写已发布的历史 BAD ),您可以简单地重新创建合并, if 你还记得,当它们/应该被制作时:

  1. 查看第一个忘记/不存在/错过合并:

    git checkout -b new_master $commit_before_merge
    
  2. 合并旧提交。如果您需要正确的合并消息(包括原始分支名称),您可能需要暂时重新创建旧分支,或手动编辑消息。

    git merge $head_commit_of_old_branch
    
  3. 然后,您必须使用cherry-pickrebase将提交从原始主分支复制到新的“mergy”分支。 (带有提交范围的cherry-pick需要最近发布的Git)

    git cherry-pick $commit_before_merge..$commit_before_next_merge
    
  4. 返回第2步并重复直至您对历史感到满意为止。

  5. NB。首先在本地克隆中进行备份和测试。