合并时仅忽略某些文件扩展名的空格

时间:2018-03-07 02:52:52

标签: javascript node.js git git-merge

我有这个命令

git merge -Xignore-all-space origin/dev

让我有点害怕b / c我害怕合并一个空格很重要的文件。有没有办法将其限制为某些文件,如下所示:

git merge -Xignore-all-space *.js origin/dev

1 个答案:

答案 0 :(得分:11)

如果您想为每个文件扩展名设置配置,一个好的起点是gitattributes.gitattributes文件中,您可以为每个文件或每个文件扩展名设置指令。

但是,* .js -whitespace mentioned in 2009可能在合并期间不适用。

由于ignore-all-space首先是git diff option,您可能需要在.gitattributes中设置diff driver(同样,仅适用于*.js个文件),模仿--word-diff-regex

  

使用<regex>来决定单词是什么,而不是将非空格的运行视为单词

     

每个非重叠的匹配被认为是一个单词。这些匹配之间的任何内容都被视为空格并被忽略(!)以查找差异。

     

您可能希望将|[^[:space:]]附加到正则表达式,以确保它与所有非空白字符匹配。包含换行符的匹配在换行符处以静默方式截断(!)。

例如(要调整以匹配javascript文件中所需的不带空格的差异)

*.js    diff=js
[diff "js"]
    wordRegex = "[^[:space:]]+"