在工作中,我们是几个开发人员,并没有代码样式指南,有些开发人员缩进了标签,还有一些开发人员有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个空格。我想必须有一些bash配置来改变它,但是我想知道git是否有选项可以在diff
/ show
中输出标签为4个空格,因为一些开发人员正在工作使用zsh
代替bash
。
有什么想法吗?
答案 0 :(得分:98)
答案 1 :(得分:3)
由于我的颜色设置,答案https://stackoverflow.com/a/10584237/1850340对我不起作用,我提出了以下解决方案:
TAB=$'\t' && git config --global core.pager "sed 's/$TAB/ /g' | less" && unset TAB
这会将所有制表符替换为4个空格,然后再将其显示为less。 (需要TAB解决方法来规避shell反斜杠转义)