在git show / git diff中将tabwidth设置为4
在工作中,我们是几个开发人员,没有代码风格指南,有些开发人员缩进标签,还有一些其他人有4个空格(幸运的是没有空格缩进,人们使用不同于4个空格)。 一般来说,这不是(大)问题,因为在我们的编辑器中,我们设置了tabwidth=4
,所有的缩进似乎都是正确的。
但是在git diff
或者git show
就是这样的:
diff --git a/mesclatabs.php b/mesclatabs.php new file mode 100644 index 0000000..1986c91 --- /dev/null +++ b/mesclatabs.php @@ -0,0 +1,5 @@ +<?php +function foo() { + echo "line with 1 tab\n"; + echo "line with 4 spaces\n"; +}
问题是git diff
或git show
每个标签显示的宽度为8个空格(实际上显示为一个标签,shell(在我的情况下为bash)显示的标签为8个空格,我想必须有一些bashconfiguration来改变这一点,但我想知道如果git有一个选项输出制表符作为diff
/ show
4个空格,因为一些开发人员使用zsh
而不是bash
。
有任何想法吗?
我相信git config --global core.pager 'less -x1,5'
参考: git-scm chp7-1
作为答案https://stackoverflow.com/a/10584237/1850340不适合我,因为我的颜色设置,我想出了以下解决scheme:;
TAB=$'\t' && git config --global core.pager "sed 's/$TAB/ /g' | less" && unset TAB
这会用4个空格replace所有的制表符,然后用较less的显示。 (TAB解决方法是需要绕过壳反斜杠转义)