At work we are several developers and don't have a code style guide, and some developers indent with tabs, and some others with 4 spaces (luckily noone of the indent with spaces people uses different than 4 spaces). In general this is no (big) problem because in our editors we set tabwidth=4
and all the indentation seems correct.
But in git diff
or git show
that's what appears:
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"; +}
The problem is git diff
or git show
where each tabs appears as wide as 8 spaces (well, in reality appears as a tab, and the shell (bash in my case) is showing the tab as 8 spaces. I suppose there must be some bash config to change this, but I'd like to know if git has an option to output tabs as 4 spaces in diff
/ show
, as some developers work with zsh
instead of bash
.
Any ideas?
^M represents carriage return. This diff means something removed a Unicode BOM from the beginning of the line and added a CR at the end.
In the left sidebar, click Appearance. Under "Tab size preference", select the drop-down menu and choose your preference.
I believe git config --global core.pager 'less -x1,5'
References:
As the answer https://stackoverflow.com/a/10584237/1850340 did not work for me because of my color settings I came up with following solution:
TAB=$'\t' && git config --global core.pager "sed 's/$TAB/ /g' | less" && unset TAB
This replaces all tab characters with 4 spaces before displaying it with less. (The TAB workaround is needed to circumvent the shells backslash escape)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With