(-> % read write unlearn)

My writings on this area are my own delusion

~/.config/git/ignore や ~/.gitignore_global にフォルダ名を書くときは foo/* も検討する

例えば .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 設定か否かには関係ない。 ただ、グローバルな設定をサブフォルダや個別リポジトリで上書き不可なのは厄介な場合がけっこうある気がする。

参考