在我们的Git存储库中,我们有一些来自本应与--no-ff
合并但没有合并的分支的合并。这些合并是很久以前进行的。
有没有什么方法可以强制/插入提交,就好像我们在用--no-ff
参数运行那些旧的合并一样?
项目中的一位超级用户喜欢GitHub的网络视图,希望能够看到各个分支,当快进发生时,这些分支都会合并到一行。
如果你不介意有一个新的主/主分支(或者覆盖旧的分支——但请记住,重写发布的历史记录是BAD),你可以简单地重新创建合并,如果你还记得,它们是什么时候创建的:
-
签出第一个遗忘/不存在/错过合并:
git checkout -b new_master $commit_before_merge
-
合并旧的提交。如果需要正确的合并消息(包括原始分支名称),则可能需要临时重新创建旧分支,或手动编辑消息。
git merge $head_commit_of_old_branch
-
然后,您必须使用
cherry-pick
或rebase
将提交从原始主分支复制到新的"merge"分支。(带有提交范围的cherry-pick需要最近发布的Git)git cherry-pick $commit_before_merge..$commit_before_next_merge
-
回到第2步,重复一遍,直到你对历史感到满意为止。
注:。先在本地克隆中进行备份和测试。