Git

【Git】.DS_Storeなど不要なファイルを全リポジトリで無視する【Mac】

Macが自動生成する隠しファイル.DS_Storeなど、不要なファイルがGitのトラッキング対象になると面倒ですよね。

これを無視する方法ですが、何パターンかのやり方が広まっているらしく、
新人が変な記事にひっかかってignoreが反映されずに困っていたのでまとめました。

前提として、SourceTreeなどの何かgit用のツールを使っている場合、ツールが勝手に設定を変更していたりするようです。
git用のツールを使っている場合はツール上から設定を行う方がよいでしょう。

ignore用の設定ファイルのパスを確認

まず、ignore用の設定ファイルの場所を確認します。

$ cat ~/.gitconfig

でexcludesfileという設定がないかを確認します。

excludesfile = /xxx/xxx/.gitignore_global

というような設定があれば、そのファイルを参照するよう設定されているのでそのファイルを変更しましょう。
どうやらSourceTreeなどを使っている場合にこの設定が追加されていたりするそうです。

設定がなければデフォルトの
~/.config/git/ignore
がignoreの設定ファイルになります。

ignoreする設定ファイルのパスですが、基本的にはそのまま利用し変更はしないほうがよいでしょう。
設定がなければデフォルトのままの方が混乱がないですし、
設定されているなら何かのツールの都合で設定が書き換えられている可能性があり直接変更すると不具合が出る可能性があるためです。

無視するファイルを設定する

設定ファイルの場所が分かったら実際に記述します。
基本的には内容を把握するためにもvimやエディタで開いて直接編集するのがおすすめです。

.DS_Store
.AppleDouble
.LSOverride

というように1行ずついれておきましょう。

初心者で開き方が分からない場合などは
$ echo '.DS_Store' >> ~/.config/git/ignore
とすることで1行ずつ直接設定を追加することもできます。

ここにgithubによるオススメ無視リストもあります。(Mac用はこちらです。やや過剰なのでお好みでというところでしょうか。)
IDEやVS Codeを使っている場合はその設定ファイルもリストにいれておくとよいでしょう。

なおプログラミング言語ごとのignoreすべきファイルは、そのリポジトリを使う全員に共通なのでリポジトリ毎の.gitignoreで設定する方がよく、
ここ(ローカル)で設定する必要はありません。

最後に

Gitはツールを使う場合はツールの挙動が分かっていないと教えられません。
ツールなしのCUIでやるのか、特定のツールを使うのかなどはGitについて質問する相手の環境にあわせておけるとよいでしょう。

参考:
~/.gitignore_global を指定するのをやめ、デフォルトの置き場に置こう

-Git
-