Is it possible to have all “git diff” commands use the “Python diff”, in all git projects?
-
04-10-2019 - |
Question
When including the line
*.py diff=python
in a local .gitattributes file, git diff
produces nice labels for the different diff hunks of Python files (with the name of the function where the changes are, etc.).
Is is possible to ask git to use this diff mode for all Python files across all git projects? I tried to set a global ~/.gitattributes, but it is not used by local git repositories. Is there a more convenient method than initializing each new git project with a ln -s ~/.gitattributes
?
Solution
Quoting from gitattributes(5)
:
Attributes that should affect all repositories for a single user should be placed in a file specified by the core.attributesfile configuration option (see git-config(1)). Its default value is $XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/attributes is used instead. Attributes for all users on a system should be placed in the $(prefix)/etc/gitattributes file.
OTHER TIPS
To tell git to use ~/.gitattributes you need to put this in ~/.gitconfig:
[core]
attributesfile = ~/.gitattributes
No, git only looks for attributes locally: .gitattributes
and .git/info/attributes