git reword没有再次解决合并冲突

时间:2012-02-12 21:51:01

标签: git rebase git-rebase

是否可以使用git rebase更改提交消息,但无需重新解决合并冲突?

我需要对旧的仓库进行保护,我不想更改任何实际代码,只需更改消息。

我试过--preserve-merges

2 个答案:

答案 0 :(得分:12)

git有一个鲜为人知的特征叫做“Reuse Recorded Resolutions”或者rerere。

您可以通过运行git config --global rerere.enabled 1全局启用它。

如果启用了rerere,git将自动保存冲突解决方案,如果遇到相同的冲突,将在以后重用这些解决方案。这样做的最终结果是不要求用户重新解决之前看到的这些冲突。

a post on git-scm.com进一步解释了该功能。有关更多详细信息,请查看help document for git rerere

答案 1 :(得分:3)

注意:由于contrib/rerere-train.sh脚本应该重新训练rerere(你可以看到manual retraining here

为了确保rerere忘记当前的所有rebase解析,现在您可以使用Git 2.14.x / 2.15(2017年第3季度)的contrib/rerere-train官方选项:--overwrite标记。

commit ad53bf7Raman Gupta (rocketraman)(2017年7月26日) (由Junio C Hamano -- gitster --合并于commit aec68c3,2017年8月11日)

  

contrib/rerere-train:可选择覆盖现有分辨率

     

为用户提供使用a覆盖现有分辨率的选项   --overwrite标志。

     

例如,如果用户知道他们已经在他们的rerere缓存中有冲突的条目,但是希望根据传递给rerere-train的合并提交放弃它并重新训练,则可以使用此方法。脚本。