Eri*_*got 14 python git diff gitattributes
包括该行时
*.py diff=python
在本地.gitattributes文件中,git diff为不同的Python文件(具有更改所在的函数的名称等)生成漂亮的标签.
是否有可能要求git对所有 git项目中的所有 Python文件使用此diff模式?我尝试设置全局〜/ .gitattributes,但本地git存储库不使用它.有没有比使用?初始化每个新git项目更方便的方法?ln -s ~/.gitattributes
引用自gitattributes(5):
\n\n\n应影响单个用户的所有存储库的属性应放置在 core.attributesfile 配置选项指定的文件中(请参阅 git-config[1])。它的默认值为 $XDG_CONFIG_HOME/git/attributes。如果 $XDG_CONFIG_HOME 未设置或为空,则使用 $HOME/.config/git/attributes 代替。系统上所有用户的属性应放置在 $(prefix)/etc/gitattributes 文件中。
\n
长话短说: echo \'*.py diff=python\' >> "${XDG_CONFIG_HOME:-$HOME/.config}"/git/attributes
7年后更新
\n\n好的,不需要diff=python为 *.py 文件 \xe2\x80\x94 配置它,它是很久以前的默认值。
但总体要点仍然是:您可以在本地(每个存储库)中设置的任何内容.gitattributes,也可以设置为全局(每个计算机)。
本身就有很多很好的例子man 5 gitattributes,所以请使用 RTFM。
让我们只做一个自定义设置:--word-diff针对所有 Markdown 文件(感谢@RayLuo在评论中建议这一点)。
首先,我们添加一个外部 diff 驱动程序:
\n\ngit config --global diff.stackoverflow-word-diff.command ~/.local/bin/stackoverflow-word-diff\nAPI 是这样的,我们必须制作一个独立的包装器可执行文件。
\n\ngit config --global diff.stackoverflow-word-diff.command ~/.local/bin/stackoverflow-word-diff\n*.md最后,我们通过*.markdown全局 gitattributes将其绑定到:
cat > ~/.local/bin/stackoverflow-word-diff << \'EOF\'\n#!/bin/bash -eu\n\n#-- uncomment for debug:\n#echo >&2 "$(basename $0) args: $@"; set -x\n\nFILENAME="$1"\nOLDFILE="$2"\nOLDHASH="$3"\nOLDMODE="$4"\nNEWFILE="$5"\nNEWHASH="$6"\nNEWMODE="$7"\n\ngit diff --no-ext-diff --word-diff "$OLDFILE" "$NEWFILE" || exit 0\n\n#-- from https://stackoverflow.com/a/18948381/531179\n#-- see `man 1 git` /EXTERNAL_DIFF, or https://www.git-scm.com/docs/git\nEOF\nchmod +x ~/.local/bin/stackoverflow-word-diff\n这就是大家!测试一下。
\n| 归档时间: | 
 | 
| 查看次数: | 862 次 | 
| 最近记录: |