【问题标题】:No-FF for merges from a long time agoNo-FF 用于很久以前的合并
【发布时间】:2012-07-25 07:45:51
【问题描述】:

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

有什么方法可以强制/插入提交,就好像我们正在使用 --no-ff 参数运行那些旧合并一样?

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

【问题讨论】:

    标签: git github git-merge fast-forward


    【解决方案1】:

    如果您不介意拥有一个新的主/主分支(或覆盖旧分支 - 但请记住,重写已发布历史记录是糟糕),您可以简单地重新创建合并,如果你还记得,他们是/应该在什么时候进行的:

    1. 签出第一个忘记/不存在/错过的合并:

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

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

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

    注意。首先在本地克隆中进行备份和测试。

    【讨论】:

    • 这将是一个漫长的夜晚。谢谢!
    • @Di-0xide: 不知道有没有更高效的版本,但不知道更好的方法
    猜你喜欢
    • 2017-03-13
    • 2013-05-25
    • 2011-07-31
    • 1970-01-01
    • 2014-04-25
    • 2018-06-09
    • 2013-08-10
    • 2016-07-10
    • 1970-01-01
    相关资源
    最近更新 更多