`.gitconfig`で複数の` core.excludesfile`を設定する方法は?


13

私は同期だ~/.gitconfigし、~/.gitignoreそれのためのDropboxや作成したシンボリックリンクを使用してのUbuntuとMacでファイル。

そしてexcludesfileこのように宣言されています。

[core]
        editor = /usr/bin/vim
        excludesfile = /Users/username/.gitignore

問題はホームディレクトリがOSによって異なるため、excludesfileに複数の設定が必要です。

複数を定義することは可能core.excludesfileですか?

回答:


16

あなたは一つだけ持つことができcore.excludesfileます。最後の設定が使用されます。ただし、複数のファイルは必要ありません。gitは~ホームディレクトリの省略形としてサポートしています。

[core]
    excludesfile = ~/.gitignore

一般に、複数の除外ファイルが本当に必要な場合、最も簡単な解決策は、他のファイルを連結した単一のファイルを生成し、ファイルの1つが変更されるたびにそれを更新することです。


.gitconfigは実際にはgitによってバージョン管理されています。残念ながら、git は絶対パスへのフルパスに展開さ~$HOME.gitconfigそれ自体を絶対パスで更新します。その振る舞いは問題ありませんが、その後、ステージングされていない変更として表示されるためgit update-index --assume-unchanged .gitconfig、(ファイルの残りとともに)拡張を無視します。
Dolph

2
@Dolph status-norepro~拡張するために何をしましたか?私は得ます:git config --global core.excludesfile '~/.gitignore'; git config --global core.excludesfile~/.gitignore(git 1.7.9.5)
Gilles「SO-邪悪なことをやめ

1
@Dolphこれはおそらくシェル拡張でした。結局のところ、そうした場合、git config --global core.excludesfile ~/.gitignore実際に実行されるのはgit config --global core.excludesfile /path/to/home/.gitignoreです。
Radon Rosborough、2016

1
@Gilles、git-scmごとに、ファイル~/.config/git/ignoreが存在する場合、ファイルはグローバルに自動的に無視されるため、グローバル構成は不要です。
Acumenus 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.