14

ラインを含める場合

*.py diff=python

ローカルの.gitattributesファイルで、git diffPythonファイルのさまざまな差分ハンクの適切なラベルを生成します(変更が行われる関数の名前など)。

すべてのgitプロジェクトのすべてのPythonファイルにこのdiffモードを使用するようにgitに依頼することは可能ですか?グローバルな〜/ .gitattributesを設定しようとしましたが、ローカルのgitリポジトリでは使用されていません。新しいgitプロジェクトをそれぞれ初期化するよりも便利な方法はありますか?ln -s ~/.gitattributes

4

3 に答える 3

4

からの引用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

そして、それはすべての人々です!試して。

于 2013-09-22T20:21:55.627 に答える
3

gitに〜/ .gitattributesを使用するように指示するには、これを〜/.gitconfigに配置する必要があります。

[core]
  attributesfile = ~/.gitattributes
于 2011-12-18T18:22:15.743 に答える
0

いいえ、gitはローカルで属性のみを検索します:.gitattributesおよび.git/info/attributes

于 2010-05-07T15:30:13.320 に答える