如何运行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命令失败,但仍然会在空白差异上引发冲突,可能是行尾内容。。。