如何运行git rebase并忽略空白?

如何运行git rebase并忽略空白?,git,git-merge,Git,Git Merge,我有一个只修改空格(尾随空格和前导空格)的提交分支 我运行了git-rebase-master和git-rebase-ignorewhitespace-master,在这两种情况下,我都与只更改了空白的提交有合并冲突。我不能保证这会有所帮助,但您可以尝试 git-rebase-Xignore空间更改主机 或 git-rebase-Xignore所有空间主控 -X将选项传递到合并算法中,默认合并算法具有这些选项以影响其处理空白的方式。使用Git 2.29(2020年第4季度)这更容易 “”(),包

我有一个只修改空格(尾随空格和前导空格)的提交分支


我运行了
git-rebase-master
git-rebase-ignorewhitespace-master
,在这两种情况下,我都与只更改了空白的提交有合并冲突。

我不能保证这会有所帮助,但您可以尝试
git-rebase-Xignore空间更改主机


git-rebase-Xignore所有空间主控


-X
将选项传递到合并算法中,默认合并算法具有这些选项以影响其处理空白的方式。

使用Git 2.29(2020年第4季度)这更容易

“”(),包括
——在合并时忽略空格(2014年OP使用该选项时不支持该选项)

因此,
git-rebase——忽略空白主文件
现在可以工作了

参见作者(2020年8月26日)
参见(2020年8月17日)和(2020年7月13日)的作者。
参见(2020年8月17日)by.
(于2020年9月3日合并)

:add--忽略空白标志 签字人:Rohit Ashiwal
签字人:菲利普·伍德

Rebase由两个不同的后端实现—“
apply
”和“
merge
”,每个后端都支持一组不同的选项

尤其是
apply
后端支持由“()”实现的许多选项,这些选项在
merge
后端中没有实现

这意味着可用的选项会因使用哪个后端而有所不同,这令人困惑

此修补程序向
合并
后端添加了对
--忽略空白
选项的支持。
此选项将只有空格更改的行视为未更改,并通过将其转换为
-Xignore space change
在合并后端中实现

git-rebase
现在在其

--忽略空白
: 尝试协调时忽略空格差异 差异。
目前,每个后端都实现了此行为的近似值:

apply
backend:应用修补程序时,忽略上下文行中空格的更改。不幸的是,这意味着,如果修补程序替换的“旧”行与现有文件仅在空白处不同,则将出现合并冲突,而不是成功的修补程序应用程序

merge
backend:合并时,将只有空格更改的行视为未更改。
不幸的是,这意味着任何打算修改空白的补丁都不会被删除,即使另一方没有冲突的更改

此标志传递给“
git apply
”程序


但是我很难确定
-Xignore空间更改
-Xignore所有空间
之间的区别。。。对于大多数项目来说,似乎有很多语言是空间敏感的。只对某些文件扩展名忽略空白更改是很有用的……当以
git rebase-Xignore all space--continue
git pull-Xignore all space origin master--rebase
运行时,git命令失败,但仍然会在空白差异上引发冲突,可能是行尾内容。。。