如何在git rebase --continue期间跳过合并

时间:2018-09-07 20:50:57

标签: git merge git-merge rebase git-rebase

情况

在脚本的上一个迭代中发现并解决了意外的不良行为之后,我试图重新应用git过滤器。我以前必须做过一次,而且在任何时候都没有收到合并冲突通知。但是,现在我还是不知道该如何处理。

我在做什么

我正在运行$git rebase -i --root --preserve-merges。我知道涉及合并和重新设置的警告,并且由于我没有重新排序任何提交,因此不适用于这种情况。

然后我将pick切换为edit

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

问题。

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

对于合并提交,这是预期的和必要的,但对于仅具有一个父级的那些提交,则这样做。

问题

我该如何防止这种行为?

我尝试过的。

到目前为止,我一直尝试与-X theirs-X ours-s ours一起玩。这没有用。阅读手册说,在二进制文件的情况下,当指定-X ours时,它只是忽略了另一个“分支”中的更改(在这种情况下,是先前的提交),因此我在{{中设置了*.* binary 1}}。万一我倒退了,我也尝试了.git/info/attributes。但是,这些尝试均未产生预期的行为。

最小的工作示例

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

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

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

  • 有关空提交的警告
  • 删除最后一次提交而没有警告
  • 最后一次提交继承了“修复”

所有这些都是不可取的。

0 个答案:

没有答案