在脚本的上一个迭代中发现并解决了意外的不良行为之后,我试图重新应用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”(修正了世界上的错字)。然后我提交并继续。
到目前为止,这些已产生以下结果:
所有这些都是不可取的。