.DS_StoreをGitから削除・除外する方法

Macで開発していると、自動生成される「.DS_Store」がGitに混ざってしまうことがあります。
不要な差分やコンフリクトの原因になるため、削除・除外しておくことが大切です。

こんな人におすすめ

  • プロジェクトに.DS_Storeが混ざって困っている人
  • 今後コミットされないように設定したい人
  • 過去の履歴から.DS_Storeを消したい人

.DS_Storeとは何か

.DS_Storeは、macOSのFinderが作る隠しファイルです。
フォルダの表示設定を保持するだけで、ソース管理には不要です。

既存の.DS_Storeを削除する

# プロジェクト内の.DS_Storeを削除
find . -name .DS_Store -delete

# Gitの管理対象から外す
git rm -r --cached .DS_Store
git commit -m "Remove .DS_Store"
git push

.gitignoreで再発防止

.gitignore に以下を追加します。

.DS_Store

すでに追跡中なら git rm --cached .DS_Store を併用してください。

全リポジトリで無視する(グローバル設定)

echo ".DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global

履歴から完全に削除する(必要な場合のみ)

git filter-repo --path .DS_Store --invert-paths
git push origin --force --all

※チームで利用する際は注意してください。

Related post

Comment

There are no comment yet.

TOP