установка tabwidth в 4 в git show / git diff


на работе мы несколько разработчиков и не имеем руководства по стилю кода, а некоторые разработчики отступы с вкладками, а некоторые другие с 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 tabn";
+    echo "line with 4 spacesn";
+}

проблема git diff или git show где каждая вкладка появляется шириной до 8 пробелов (ну, на самом деле появляется как вкладка, а оболочка (bash в моем случае) показывает вкладку как 8 пробелов. Я полагаю, что должна быть какая-то конфигурация bash, чтобы изменить это, но я хотел бы знать, есть ли у git возможность выводить вкладки в виде 4 пробелов в diff/show, как некоторые разработчики работают с zsh вместо bash.

какие идеи?

2 55

2 ответа:

Я считаю git config --global core.pager 'less -x1,5'

ссылки: git-scm chp7-1

ответ https://stackoverflow.com/a/10584237/1850340 не работает для меня из-за моих настроек цвета, я придумал следующее решение:

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

это заменяет все символы табуляции в 4 пробела перед отображением его меньше. (Вкладка обходной путь необходим, чтобы обойти оболочки обратной косой черты побег)