Undo a git rerere resolution that was done in a rebase

萝らか妹 提交于 2019-11-29 10:57:53

问题


Okay, so I really like the git rerere command. Although, I haven't really used it that much other than letting it auto-magically record my conflicts and resolve them for me. However, I did mess up one of my conflict resolutions during quite a large rebase (rebasing a really stale feature branch with the latest release).

feature -> a - b - c - d

release -> e - f - g - h

rebase/feature -> e - f - g - h - a' - b' - c' - d'

So, say for instance that b' has an incorrect merge (thanks to me!), and I want to re-record that. How would I do it? I've seen the git checkout --conflict option, mentioned in Rerere Your Boat, but I'm not too clear on how that works and if it applies here. Maybe I have to checkout the merge conflict state and run git rerere once I correctly resolve this conflict?

Normally, I would just commit to the tip of the rebase branch, but it is a throw away. I'm just trying to handle conflicts ahead of time, so that when I sync up with that feature team, we minimize the time it takes. Make sense?


回答1:


To simply remove all previous rerere resolutions, run rm -rf .git/rr-cache to remove the cache.

For a specific merge, you can tell rerere to forget the recorded resolution by re-executing the merge and allowing rerere to apply its recorded resolution in the work tree.

You can check out a' and then do a git merge b to get back into that situation (you'll probably be in a checkout of a detached head since you specified the commit hash of a', so be aware that you're not on a branch).

Then use git rerere forget FILE-WITH-BAD-MERGE where to specify the file whose recorded conflict resolution should be forgetten.

forget <pathspec>
Reset the conflict resolutions which rerere has recorded for the current conflict in .

(From the Git documentation for git-rerere.)



来源:https://stackoverflow.com/questions/18500016/undo-a-git-rerere-resolution-that-was-done-in-a-rebase

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!