Is it possible to have all “git diff” commands use the “Python diff”, in all git projects?

StackOverflow https://stackoverflow.com/questions/2788649

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?

Was it helpful?

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top