196

here で説明されているように、チェックアウト中にファイルをマングルするためにフィルターを使用しています。ここでの問題は、フィルター定義がローカル構成ファイルにのみ保存されることです。

$ cat .git/config
....
[filter "dater"]
        smudge = /home/.../expand_date
        clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\"

Date同僚がこの拡張の恩恵を受けたい場合は、私のフィルター定義をコピーする必要があります。変更する場合は、通知する必要があります。

では、このフィルター定義部分を.git/configリポジトリに保存して、git に使用させることはできますか?

4

2 に答える 2

215

サポートされているファイルのスコープは 3 つあり.gitconfigます: --system, --global, --local. カスタム構成ファイルを作成して、サポートされているファイルの 1 つに含めることもできます。

あなたのニーズに合わせてカスタム- は正しい選択です。フィルターを書き込む代わりに、リポジトリ ルートのファイルに.git/config保存する必要があります。.gitconfig

your-repo/
│
├── .git/
│   ├── config
│
├── .gitconfig
│

.gitconfigフィルタを使用して を作成し、変更をコミットします。そうすれば、同僚はそれを常に最新の状態に保ちますが、手動で含める必要があります。セキュリティの脆弱性が生じるため、git だけでカスタム構成ファイルを自動的に含めることはできません。

この構成を 1 つのリポジトリに適用するには、各ユーザーが で次のコマンドを実行する必要がありますyour-repo/

git config --local include.path ../.gitconfig

参照: https://git-scm.com/docs/git-config#_includes

個人データをカスタム.gitconfigに保存しないようuser.*に注意してください。たとえば、それらをグローバルに保持してください.gitconfig

于 2013-08-20T08:15:20.933 に答える
26

.gitconfigデフォルトでは、ファイルを git リポジトリで使用することはできませんが、ファイルにリンクして、git 構成がバージョン管理されるようにすることができます。

次のようにリンクできます。

[include]
  path = ../.gitconfig

私はあなたのためにそれを行う簡単なスクリプト gitconfig.shを作成しました(コピーよりもはるかに高速です)+簡単な.gitconfigファイルなので、必要に応じて、このリポジトリhttps://github.com/HoBi/dotfilesをご覧ください。


編集:ファイルを削除しましたが、ここで見つけることができます

于 2015-07-24T08:14:36.653 に答える