すべてのリポジトリで .DS_Store を gitignore する方法
はじめに
git 学びたてで, コマンドラインで色々やっていると間違えて不要なファイルをプッシュしちゃったことありませんか? Mac の Finder で自動で作られる .DS_Store なんかは特にそういったことが多いように思います.
今回は, そんな .DS_Store を間違えてプッシュしないようにすべてのリポジトリから gitignore する方法を2つ紹介したいと思います.
パターン1: config/git に ignore ファイルを作る
.gitconfig
をいじらずに全リポジトリ共通の gitignore を作成する方法です.
以下の流れですべてのリポジトリ共通の gitignore を設定をすることができます.
- ホームディレクトリに
.config/git
というフォルダを作る -
.config/git
にignore
というファイルを作る - 中身に
.DS_Store
を書き込む
.DS_Store
コマンドだと以下の流れでできます.
% mkdir -p ~/.config/git
% echo '.DS_Store' >> ~/.config/git/ignore
こちらの方法であれば .gitconfig
をいじることなくグローバルな無視リストを追加できます.
一応, 公式でも
core.excludesFile
のデフォルト値は$XDG_CONFIG_HOME/git/ignore
でなければ$HOME/.config/git/ignore
を使います
的なことが書かれているのでこの方法が無難かもしれません.
パターン2: .gitignore_global を作成し .gitconfig に登録する
もうひとつやり方があるので紹介します.
.gitignore_global
というファイルをホームディレクトリに作成し, そこにパターン1と同じように .DS_Store
を追加します.
さらに以下のコマンドで .gitconfig
に .gitignore_global
を登録します.
% git config --global core.excludesfile ~/.gitignore_global
SourceTree ではグローバルな無視リストを追加すると .gitignore_global
が作られて自動で .gitconfig
との紐付けもやってくれるます.
なので, SourceTree を使っている方はこちらの方法が良いかもしれません.
おわりに
私はゆとりエンジニアなので git の操作は SourceTree を使っているのですが, .gitconfig
の仕組みを改めて勉強してみると裏側で何をやっているのか知れて楽しかったです!
引き続き色々と学んだことを発信していけたらと思います.
Discussion