繁体   English   中英

如何使用 git rebase 保留调整后的合并提交(冲突和非冲突的自动合并结果)?

[英]How to preserve adjusted merge commits (conflicting and non-conflicting automerge results) with git rebase?

我正在使用git rebase -i --rebase-merges <commit>来更改一些提交消息,效果很好。 但是我想保留的合并提交有更改或冲突解决方案; 有没有一种简单的方法可以重做它们?

我目前的工作如下:

  1. 在交互式 rebase 概述中,将merge -C <commit>更改为merge -c <commit>以确保不会自动提交合并提交
  2. 当合并提交完成时,检查原始合并的状态: git checkout <commit> -- . ( -- .需要防止 HEAD 被重置为 )
  3. 查看暂存区
  4. 继续变基

这里没有王道:当您进行了邪恶合并并要求 Git 重新执行该合并(使用git rebase -r或类似命令)时,Git 根本不会进行邪恶合并。

出于这个原因,有时最好进行非邪恶合并并跟进修复提交,即使非邪恶合并在某种意义上是“坏的”(例如,不编译或包含已知错误)。 如果您不喜欢这种方法,有时您可以在进行合并之前进行提交,这样所产生的非恶意合并是好的。 但这可能会将“不良”推入提交(合并前的修复),让您拥有相同的糟糕设置。

您可以选择一些不好的解决方案:进行邪恶的合并并避免重新调整它; 做一个邪恶的合并,并在重新调整它时付出额外的努力; 或者通过使用修复提交来避免邪恶的合并。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM