例えば .vscode
内の設定は個人的な設定も含めて独自に色々いじるので基本的に常に ignore しておきたいとする。
そういうとき次のようなファイルにグローバルな設定を書いておくことがよくある。
~/.config/git/ignore
~/.gitignore_global
(ちなみに、 git はデフォルトで ~/.config/git/ignore
を認識するそう。なので、~/.config/git/ignore
を積極的に使おう。参考: ~/.gitignore_global を指定するのをやめ、デフォルトの置き場に置こう )
ここで上記 ignore ファイルに
.vscode/
のように書くと、個別のワークスペースやリポジトリ内で、部分的にその設定を打ち消す(つまり ignore しないようにする)ということができなくなる。
.vscode/*
としておくと、個別のワークスペースやリポジトリ内の .gitignore 内で
!/.vscode/foo.json
とすることで foo.json だけはコミットできるように設定を上書きできる。
正確には、設定が上書きできること自体は Global 設定か否かには関係ない。 ただ、グローバルな設定をサブフォルダや個別リポジトリで上書き不可なのは厄介な場合がけっこうある気がする。