我有这个命令
git merge -Xignore-all-space origin/dev
让我有点害怕b / c我害怕合并一个空格很重要的文件。有没有办法将其限制为某些文件,如下所示:
git merge -Xignore-all-space *.js origin/dev
答案 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:]]+"