gpt4 book ai didi

git - 撤消在 rebase 中完成的 git rerere 解决方案

转载 作者:IT王子 更新时间:2023-10-29 01:14:59 26 4
gpt4 key购买 nike

好吧,所以我真的很喜欢 git rerere 命令,尽管除了让它自动神奇地记录我的冲突并为我解决它们之外,我并没有真正使用过它。但是,在相当大的 rebase 期间,我确实弄乱了我的一个冲突解决方案(用最新版本 rebase 一个非常陈旧的功能分支)。

feature -> a - b - c - d

release -> e - f - g - h

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

所以,例如说 b' 有一个不正确的 merge (感谢我!),我想重新记录它。我该怎么做?我见过 git checkout --conflict 选项,在 Rerere Your Boat 中提到过,但我不太清楚它是如何工作的,以及它是否适用于此。也许我必须检查 merge 冲突状态并在正确解决此冲突后运行 git rerere

通常情况下,我只会提交到 rebase 分支的顶端,但它是一次性的。我只是想提前处理冲突,这样当我与那个功能团队同步时,我们就能最大限度地减少花费的时间。有道理吗?

最佳答案

简单地删除所有以前的 rerere决议,运行 rm -rf .git/rr-cache删除缓存。

对于具体的 merge ,可以告诉rerere通过重新执行 merge 并允许 rerere 来忘记记录的分辨率在工作树中应用其记录的解决方案。

可以查看a'然后做 git merge b回到那种情况(因为您指定了 a' 的提交哈希,所以您可能会检查一个分离的头,所以请注意您不在分支上)。

然后使用git rerere forget FILE-WITH-BAD-MERGE在哪里指定应该忘记其记录的冲突解决方案的文件。

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

(来自 the Git documentation for git-rerere .)

关于git - 撤消在 rebase 中完成的 git rerere 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18500016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com