81

仕事で私たちは何人かの開発者であり、コードスタイルガイドを持っていません。タブでインデントする開発者もいれば、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 diffgit show各タブが8スペースの幅で表示される場合(実際にはタブとして表示され、シェル(私の場合はbash)がタブを8スペースとして表示している場合です。変更するにはbash構成が必要だと思いますこれですが、一部の開発者は。の代わりに作業するため、gitにdiff/内の4つのスペースとしてタブを出力するオプションがあるかどうかを知りたいです。showzshbash

何か案は?

4

2 に答える 2

122

私は信じているgit config --global core.pager 'less -x1,5'

参照:

于 2012-05-14T13:25:44.870 に答える
3

答えhttps://stackoverflow.com/a/10584237/1850340が私の色設定のために私のために機能しなかったので、私は次の解決策を思いつきました:

TAB=$'\t' && git config --global core.pager "sed 's/$TAB/    /g' | less" && unset TAB

これにより、すべてのタブ文字が4つのスペースに置き換えられてから、lessで表示されます。(シェルのバックスラッシュエスケープを回避するには、TABの回避策が必要です)

于 2014-07-20T00:28:44.913 に答える