からの引用gitattributes(5)
:
1人のユーザーのすべてのリポジトリに影響を与える属性は、core.attributesfile構成オプションで指定されたファイルに配置する必要があります(git-config(1)を参照)。デフォルト値は$XDG_CONFIG_HOME/ git/attributesです。$ XDG_CONFIG_HOMEが設定されていないか空の場合、代わりに$ HOME / .config / git/attributesが使用されます。システム上のすべてのユーザーの属性は、$(prefix)/ etc/gitattributesファイルに配置する必要があります。
TL; DR: echo '*.py diff=python' >> "${XDG_CONFIG_HOME:-$HOME/.config}"/git/attributes
更新、7年後
わかりました。*。pyファイルを構成する必要はありませんdiff=python
。これはずっと前からのデフォルトです。
ただし、一般的なポイントは変わりません。ローカル(リポジトリごと)で設定できるものはすべて.gitattributes
、グローバル(マシンごと)にすることもできます。
man 5 gitattributes
それ自体に良い例がたくさんあるので、RTFMに行ってください。
--word-diff
すべてのMarkdownファイルに対して1つのカスタムセットアップを実行しましょう(コメントでこれを提案するための@RayLuoへのkudos)。
まず、外部のdiffドライバーを追加します。
git config --global diff.stackoverflow-word-diff.command ~/.local/bin/stackoverflow-word-diff
APIは、スタンドアロンラッパーを実行可能にする必要があるようなものです。
cat > ~/.local/bin/stackoverflow-word-diff << 'EOF'
#!/bin/bash -eu
#-- uncomment for debug:
#echo >&2 "$(basename $0) args: $@"; set -x
FILENAME="$1"
OLDFILE="$2"
OLDHASH="$3"
OLDMODE="$4"
NEWFILE="$5"
NEWHASH="$6"
NEWMODE="$7"
git diff --no-ext-diff --word-diff "$OLDFILE" "$NEWFILE" || exit 0
#-- from https://stackoverflow.com/a/18948381/531179
#-- see `man 1 git` /EXTERNAL_DIFF, or https://www.git-scm.com/docs/git
EOF
chmod +x ~/.local/bin/stackoverflow-word-diff
最後に、グローバルgitattributesを介して*.md
、これをに結び付けます。*.markdown
mkdir -vp "${XDG_CONFIG_HOME:-$HOME/.config}"/git
{ echo '*.md diff=stackoverflow-word-diff'; \
echo '*.markdown diff=stackoverflow-word-diff; \
} \
>> "${XDG_CONFIG_HOME:-$HOME/.config}"/git/attributes
そして、それはすべての人々です!試して。