能否使用 git rebase 更改提交消息,但不必重新解决合并冲突?
我需要修改一个较旧的 repo,并且不想更改任何实际代码,只需更改消息。
我尝试过 --preserve-merges
。
能否使用 git rebase 更改提交消息,但不必重新解决合并冲突?
我需要修改一个较旧的 repo,并且不想更改任何实际代码,只需更改消息。
我尝试过 --preserve-merges
。
Git有一个鲜为人知的功能叫做“重用已记录的决策”,或者rerere
。
您可以运行git config --global rerere.enabled true
来全局启用它。
如果启用了rerere
,git
会自动保存冲突解决方案,并在以后遇到相同的冲突时重复使用这些解决方案。这意味着用户不需要重新解决这些先前看到的冲突。
这个功能在这里得到了解释 - Git-Rerere。
git rerere
命令的文档在这里 - git-rerere(1)。
contrib/rerere-train.sh
脚本旨在重新训练 rerere(可以查看手动重新训练),为了确保 rerere
忘记所有当前的变基解决方案,现在你有一个正式选项,在 Git 2.14.x/2.15(Q3 2017)中使用 contrib/rerere-train
的 --overwrite
标志。rocketraman
) 在 2017 年 7 月 26 日提交。gitster
-- 合并于 提交 aec68c3,于 2017 年 8 月 11 日合并)
contrib/rerere-train
:可选择覆盖现有的解决方案通过使用
--overwrite
标志向用户提供覆盖现有解决方案的选项。例如,如果用户知道他们的 rerere 缓存中已经有一个冲突条目,但希望删除它并重新基于传递给 rerere-train 脚本的合并提交进行训练,则可以使用此选项。