Answers:
对于diff,有git diff --ignore-space-at-eol
,应该足够好。对于diff和blame,您可以使用-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 "$@"
为了最大程度减少混合行尾的麻烦,请确保将文本文件声明为such。
另请参见git-merge是否有可能忽略行尾差异?在堆栈溢出。
bl = blame -w
但不能重新定义内置命令的名称,并且看不到将其设置为默认值的配置选项。但是我不是git专家。
git status
?