kev*_*nmm 24 git git-rebase git-rerere
好的,所以我真的很喜欢git rerere命令.虽然,我还没有真正使用它,除了让它自动神奇地记录我的冲突并为我解决它们.但是,我确实搞砸了我的冲突解决方案中的一个很大的rebase(使用最新版本重新定义了一个非常陈旧的功能分支).
feature -> a - b - c - d
release -> e - f - g - h
rebase/feature -> e - f - g - h - a' - b' - c' - d'
Run Code Online (Sandbox Code Playgroud)
所以,比方说b'有一个不正确的合并(感谢我!),我想重新录制它.我该怎么办?我已经看过在Rerere Your Boat中提到的git checkout --conflict选项,但是我不太清楚它是如何工作的,如果它适用于这里.也许我必须检查合并冲突状态并在我正确解决此冲突后运行git rerere?
通常情况下,我只会提交rebase分支的提示,但这是一个扔掉.我只是提前处理冲突,因此当我与该功能团队同步时,我们将所需的时间最小化.合理?
Col*_*ett 37
要简单地删除所有以前的rerere
分辨率,请运行rm -rf .git/rr-cache
以删除缓存.
对于特定的合并,您可以rerere
通过重新执行合并并允许rerere
在工作树中应用其记录的分辨率来告知忘记记录的分辨率.
你可以退房a'
,然后做一个git merge b
回到那种情况(你可能会在你指定提交哈希值时检查分离头a'
,所以要注意你不在分支上).
然后使用git rerere forget FILE-WITH-BAD-MERGE
where指定应该忘记记录的冲突解决方案的文件.
forget <pathspec>
重置rerere为当前冲突记录的冲突解决方案.
(来自git-rerere的Git文档.)