1. ホーム
  2. git

[解決済み】git configをリポジトリの一部として保存する方法は?

2022-04-15 17:18:13

質問

チェックアウトの際に、以下のようなフィルターを使用してファイルを混在させています。 ここで . 今問題なのは、フィルタの定義がローカルの設定ファイルにしか保存されていないことです。

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

もし同僚がこの恩恵を受けたいと思ったら Date の拡張を行うには、私のフィルター定義をコピーする必要があります。そして、私がそれを変更したら、彼らに通知する必要がある、などです。

で、このフィルタ定義の部分を保存することは可能ですか? .git/config をリポジトリに登録し、git にそれを使わせることができますか?

どのように解決するのですか?

の対応スコープは3つです。 .gitconfig ファイルを作成します。 --system, --global, --local . また、カスタム設定ファイルを作成し、サポートされているファイルのいずれかに含めることができます。

お客様のニーズに合わせて カスタム - が正しい選択です。でフィルタを書く代わりに .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 .