リポジトリの一部としてgit configを保存する


147

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

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

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

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


あなたは見つけることがあり、このリンクは自動的にチーム全体の設定を共有するのに便利。
mljrg

回答:


163

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

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

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

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

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

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

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


40
私はそれがレポのを含める必要があることを、可能な各ユーザーに通知しないようにする.gitconfig彼の中に~/.gitconfig。誰もそれを覚えていないでしょう。gitに常にリポジトリを読み込ませる方法はあり.gitconfigますか?
Zaar Hai

9
@ZaarHai:危険だと思うので、いいえと思います。(たとえば、ホームディレクトリの内容をエクスポートするなど、「興味深い」何かでコマンドのエイリアスを作成するリポジトリを複製することを想像してください)。configureスクリプトなどのユーザーが実行する必要があるものがあれば、それをインクルードに設定する(またはユーザーにプロンプ​​トを出す)ことができます。
Hasturkun 2013

4
@HenryBlythにの--fileオプションがあるようgit configです。次に、それをリポジトリのを指すように設定できます.gitconfig。私はまだテストしていませんが、あなたの質問に答えるようです。あなたはそれをドキュメントで読むことができます。 git-scm.com/docs/git-config#FILES
theUnknown777

12
セキュリティの脅威に注意する必要がある組織外に配布されたコードを記述しているとGitが想定していなかった場合、すばらしいことです。システムの使いやすさと自動化は、セキュリティよりも優先される場合があります。
ジョーディー

2
チームが日常的に使用するタスク(タスクランナーを使用している場合)にコマンドをこっそり追加できます。
Mieszko 2018

19

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

あなたはそのようにそれにリンクすることができます:

[include]
  path = ../.gitconfig

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


編集:私はファイルを削除しましたが、ここで見つけることができますhttps://github.com/tenhobi/dotfiles/blob/7e4376c006c508370b82bc7bd37173fab51dbd01/git/.gitconfig.sh


@XmlmXmlmXが修正されました。:-)
テンホビ2016年

@HoBi GitHubからgitconfig.shを削除したようですが、なぜそれが必要なくなったのですか?
初心者C

1
@NoviceC欲しいならファイルがあります。github.com/HoBi/dotfiles/blob/…git プロジェクトに.gitconfigやgitconfig.shを保存するべきではないと信じてきました。これらは個人的な設定であり、~/フォルダーのグローバル設定に保存する必要があります。そして、誰もが異なるニーズを持っているかもしれないので、なぜあなたはgit repoであなたの設定でみんなを悩ますのですか?:-)
tenhobi 2016

@tenhobiには、誰もがプロジェクトで共有できる興味深い構成がいくつかあります。プロジェクトのコーディングフローを使用して、エイリアスに対してこれを行います
Z. Khullah
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.