是否有可能使用git rebase更改提交消息,但不必重新解決合併衝突?git reword而不解決合併衝突再次
我需要bowdlerize舊的回購,我不想改變任何實際的代碼,只是消息。我試過--preserve-merges
。
是否有可能使用git rebase更改提交消息,但不必重新解決合併衝突?git reword而不解決合併衝突再次
我需要bowdlerize舊的回購,我不想改變任何實際的代碼,只是消息。我試過--preserve-merges
。
git有一個鮮爲人知的功能叫做「Reuse Recorded Resolutions」,或者是rerere。
您可以通過運行git config --global rerere.enabled 1
來全局啓用它。
如果rerere啓用,git會自動保存衝突的決議,後來會重用這些決議如果遇到同樣的衝突。這最終導致不需要用戶重新解決先前看到的衝突。
該功能在a post on git-scm.com中進一步解釋。有關更多詳細信息,請參閱help document for git rerere。
注意:由於contrib/rerere-train.sh
腳本應該重新培訓rerere(你可以看到一個manual retraining here)
爲了確保rerere
忘記其目前所有的底墊中的分辨率,你現在使用Git 2.14.x官方選項/2.15(2017年第3季度)爲contrib/rerere-train
:--overwrite
標誌。
Raman Gupta (rocketraman
)通過查看commit ad53bf7(2017年7月26日)。
(由Junio C Hamano -- gitster
--在合併,2017年8月11日)
contrib/rerere-train
:任選覆蓋現有的分辨率提供用戶選項來改寫使用
--overwrite
標誌現有決議。例如,如果用戶知道他們已經在其rerere緩存中存在衝突條目,但希望根據傳遞給rerere-訓練腳本。
不幸的是,這隻會幫助你,如果你有它啓用當你第一次做了合併 - 現在爲時已晚。在Git源代碼的貢獻部分有一個[腳本叫做rerere-train](https://github.com/gitster/git/blob/master/contrib/rerere-train.sh),它貫穿了現有的歷史並且使得rerere從現有的合併中學習衝突解決方案 - 假設它可行,在這種情況下可以幫助您。 – Cascabel 2012-02-13 04:33:22