Linux 带忽略空白/行尾的樱桃形拾取
有没有办法告诉git cherry pick使用Linux 带忽略空白/行尾的樱桃形拾取,linux,git,line-endings,Linux,Git,Line Endings,有没有办法告诉git cherry pick使用重新规范化合并策略?我不确定-X选项是否有效 我有一堆提交,它们似乎假定一种类型的行结束,我正试图将它们应用于假定另一种类型的分支。不太开心…因此,为了完整起见,答案是忽略所有空间合并策略起作用: git cherry-pick -X ignore-all-space <commit-id> git cherry pick-X忽略所有空间 这将使您可以毫不费力地在文件有windows行结尾时选择提交到有unix文件结尾的版本上。我知
重新规范化
合并策略?我不确定-X
选项是否有效
我有一堆提交,它们似乎假定一种类型的行结束,我正试图将它们应用于假定另一种类型的分支。不太开心…因此,为了完整起见,答案是
忽略所有空间
合并策略起作用:
git cherry-pick -X ignore-all-space <commit-id>
git cherry pick-X忽略所有空间
这将使您可以毫不费力地在文件有windows行结尾时选择提交到有unix文件结尾的版本上。我知道这个问题已经很老了,但添加这个答案是因为这是谷歌搜索“git cherry pick ignore whitespace”的第一篇帖子 尽管
-X ignore all space
可以正常工作,但如果cherry pick without ignore space选项存在一些冲突,则必须手动检查提交。(或者在樱桃采摘时使用--no commit
,然后使用git diff--staged
查看它)
在某些情况下,-X ignore all space
选项看起来不错,但有些缩进是错误的
例如,假设您在不使用“忽略所有空格”的情况下与前导空格发生了一些合并冲突,如下所示:
Change from theirs, Indent level 1(no conflict with/out whitespace)
<<<<< HEAD
Indent level 0
=====
Indent level 1 without any code change
>>>>> cherry-picked commit
Change from theirs, indent level 1
Indent level 0
这里发生的事情是,它们更改了逻辑,因此以前的代码(缩进级别0)应该缩进到级别1,但没有,因为您指定了ignore-all-space选项
因此,tl;博士是:
-X ignore all space
选项也会忽略前导空格,这在某些情况下和Python等语言中可能会造成麻烦-X忽略下线处的空格
,并手动处理前导空格冲突对于eol更改:这是特定于操作系统的,但git幸运地支持core.autocrlf和core.eol用于多平台开发环境。有关更多详细信息,请参阅。我想我可能已经回答了我自己的问题
-X renormalize
不工作,但-X ignore all space
正在执行此任务。。。策略在我的案例中也很有用。即,-X在下线忽略cr
。().