👻 気づくとそこにいる隠しファイル
GitHubを使って複数人で開発作業をしていると、たまに「おみゃーさん、いつどこで入ってきたんだがね?(愛知弁)」というファイルがコミットに紛れ込んでくることがあります。
代表的なものは.DS_Storeなどです。
.DS_StoreはMac固有の隠しファイルで、いろんなフォルダに実は潜んでいます🥷
個人的には、デザイン業務とかで写真のやり取りをするときにzip圧縮したり他の人にファイルを送ったりするといつの間にか可視化されているという経験は幾度となくありました。
他にはWindows固有のファイルであるThumbs.dbや(これは「隠し」ファイルではないか?)、あとは.vscodeのようなエディタ固有の隠しディレクトリもあります。
👋 隠しファイルはGit管理対象外へ
こういった隠しファイル系はリポジトリ内には不要なものなので、Gitの管理対象外にしてしまうのが手っ取り早いです。
Git管理対象外にするといえばgitignore。方針としては大きく2つあるようです。
今回は自身のMacの方の設定の話です。
自分はどうだっけと思って調べたら、ユーザーディレクトリ直下(/Users/myname/)に.gitignore_globalというグローバル設定用のファイルがあり、その中にすでに.DS_Storeの記述がありました。自分で入れたんだっけ、何も覚えていない…😇
📁 gitignoreのスタンダードな置き場所
少し調べてみたところ、gitignoreを設定する場所としてデフォルトは別にあるようです。
Its default value is $XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore is used instead.
Git - gitignore Documentation
上記によると、~/.config/git/ignore内がデフォルト値とのことです。
一方、日本語訳もある8.1 Git のカスタマイズ - Git の設定 の方でガッツリ~/.gitignore_globalというのが出てきます。
このような設定を行うには、グローバルな .gitignore のようなファイルが必要です。 ~/.gitignore_global ファイルへ次の内容を書き込んで、(以下略)
昔の僕が、これを参照して設定をしたのかもしれません。(繰り返しますが、何も覚えていない😇)
🚚 gitignore置き場のお引越し
上の記事内で書かれているように、今の~/.config/git/ignoreのままでも問題はないようなのですが、せっかく今回デフォルト値を知ったので場所を移すことにしました。
# 必要なディレクトリを作成(-pオプションで、すでにディレクトリがあってもエラーにならないようにしている) mkdir -p ~/.config/git # 元々あった.gitignore_globalをリネームしてさらに移動 mv ~/.gitignore_global ~/.config/git/ignore # 新しく設置した方のファイルをグローバルなgitignoreとして使うように変更するコマンド git config --global core.excludesFile ~/.config/git/ignore
これによりユーザーディレクトリ直下にあった.gitignore_globalファイルは無くなりました。
ユーザーディレクトリ直下は煩雑になりがち(というかなっている)なので、ファイルが1つ減ったのも何気に嬉しいポイントでした✨
🔬 参考記事
この記事を書くにあたって、以下の記事を参考にさせていただきました🙏
おまけ
この話は続きがあるかもしれず、続きができたらまた別の記事で書きます🚀