如何使用git rerere(或类似)自动解决"子模块合并冲突" s?

时间:2014-08-19 18:31:12

标签: git git-submodules git-rerere

我正在尝试在分支A上重新绑定分支B,但是A中的一个最新提交删除了一个用git子模块替换它的文件夹。

运行git rebase A后,git在每次提交B(约200)时停止,要求我解决冲突。然后我运行git mergetool并得到:

Submodule merge conflict for 'isolate':
  {local}: submodule commit 0b28bb5dc58c86f38729a6f06c235bc564033556
  {remote}: deleted
Use (l)ocal or (r)emote, or (a)bort?

我尝试通过运行git config --global rerere.enabled 1来启用git rerere,并且在“已解决”(仅输入 L )后确实调用了git rerere

问题是:通过查看.git/rr-cache/文件夹,我可以看到它记录了一个分辨率,但它是唯一一次(超过20个分辨率)我必须真正解决冲突的地方。

也许rerere不记录这种类型的分辨率?如果是这样的话,我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

起初我认为这样做太乏味了:

git mergetool
# type "l", type "enter"
git rebase --continue

然后我这样做了:

echo "l" | git mergetool && git rebase --continue

它的速度要快得多,所以我只为所有提交做了。

然而,如果有人发现它,我仍然对更好的解决方案感兴趣:)