首页 > 解决方案 > 如何在`git rebase --continue`期间跳过合并

问题描述

情况

在识别并解决了上一次脚本迭代中的意外和不良行为后,我正在尝试重新应用我的 git 过滤器。我以前必须这样做一次,而且我从来没有收到合并冲突通知。但是,现在我无法弄清楚如何处理它。

我在做什么

我在跑步$git rebase -i --root --preserve-merges。我知道涉及合并和变基的警告,它不适用于这种情况,因为我没有重新排序任何提交。

然后我切换pickedit

编辑后,该过程包括在每个文件上运行污迹过滤器,然后应用清洁过滤器。它的过程非常简单。

问题。

git rebase --continue执行合并。下一次提交的文件将有很大不同,因为被过滤的文件是 LaTeX 文件,我将段落分成多行。

对于合并提交,这是预期的,也是必要的,但它对只有一个父级的提交执行此操作。

问题

我能做些什么来防止这种行为?

我试过的。

到目前为止,我尝试过的是玩-X theirs,-X ours-s ours. 这没有奏效。阅读手册它说,在二进制文件的情况下,当-X ours被指定时,它只是忽略了另一个“分支”(在这种情况下是以前的提交)中的更改,所以我设置*.* binary.git/info/attributes. 万一我把它弄反了,我也用theirs. 然而,这些尝试都没有产生期望的行为。

最小的工作示例

我一直在用一个简单的三提交 repo 对此进行测试,其中第一个提交是“hello”,第二个是“hello\nwrld”,第三个是“hello\nwrld\n”。where\n实际上是文件中的一个新行。

然后我选择第一个(根)和第三个(最后一个)提交并编辑中间那个。所做的更改是“hello”到“hello\nworld”(修复了世界中的错字)。然后我提交并继续。

到目前为止,这些已经产生了以下结果:

所有这些都是不可取的。

标签: gitmergegit-mergerebasegit-rebase

解决方案


推荐阅读