Mic*_*zek 30 configuration git whitespace
我找到了大量网站,它们解释了如何在更改行尾时让 git 警告您,或者使用其他各种技术来防止您弄乱整个文件。假设现在为时已晚——树已经有切换文件行尾的提交,因此git diff
显示旧文件的减法,然后添加具有相同内容的新文件
我正在寻找一个 git 配置选项或命令行标志,它告诉diff
忽略那些 - 如果两行只有空格不同,假装它们是相同的。我需要这个配置选项/标志工作任何依赖文件的差异- diff
,blame
甚至merge
/rebase
理想-我想git
完全忽略尾随的空白,尤其是行尾。我怎样才能做到这一点?
Gil*_*il' 17
对于差异,有git diff --ignore-space-at-eol
,这应该足够了。对于差异和指责,您可以使用-w
: git diff -w
、忽略所有空格更改git blame -w
。
对于git apply
和git rebase
,文档中提到--ignore-whitespace
。
对于合并,您似乎需要使用外部合并工具。你可以使用这个包装脚本(未经测试),favorite-mergetool
你最喜欢的合并工具在哪里;跑git -c mergetool.nocr.cmd=/path/to/wrapper/script merge
。合并的结果将是 unix 格式;如果您更喜欢另一种格式,请将所有内容转换为该不同格式,或$MERGED
在合并后进行转换。
#!/bin/sh
set -e
TEMP=$(mktemp)
tr -d '\013' <"$BASE" >"$TEMP"
mv -f "$TEMP" "$BASE"
TEMP=$(mktemp)
tr -d '\013' <"$LOCAL" >"$TEMP"
mv -f "$TEMP" "$LOCAL"
TEMP=$(mktemp)
tr -d '\013' <"$REMOTE" >"$TEMP"
mv -f "$TEMP" "$REMOTE"
favorite-mergetool "$@"
Run Code Online (Sandbox Code Playgroud)
为了尽量减少混合行结尾的麻烦,请确保文本文件被声明为这样。
另请参阅git-merge 是否可以忽略行尾差异?在堆栈溢出上。
归档时间: |
|
查看次数: |
33040 次 |
最近记录: |