macOS を使って開発していると、知らないうちに .DS_Store
というファイルがプロジェクト内に作成されてしまいます。このファイルは Finder のメタデータを保存するもので、Git リポジトリには不要です。本記事では、.DS_Store
を Git で無視し、すでに追加してしまった .DS_Store
を削除する方法を紹介します。
1. .gitignore に .DS_Store を追加する
今後 .DS_Store
が Git に追加されないように、.gitignore
に以下の行を追加します。
echo ".DS_Store" >> .gitignore
もしくは、.gitignore
ファイルを開いて以下の行を手動で追加します。
.DS_Store
この設定を適用することで、今後 .DS_Store
は Git の追跡対象から外れます。
2. すでに追加されてしまった .DS_Store を削除する
2.1 .DS_Store ファイルを検索する
まず、リポジトリ内に .DS_Store
ファイルがどこにあるかを確認します。
find . -name ".DS_Store"
このコマンドを実行すると、リポジトリ内の .DS_Store
ファイルがリストされます。
2.2 .DS_Store を削除する
次に、以下のコマンドを実行して .DS_Store
をすべて削除します。
find . -name ".DS_Store" -delete
削除後、もう一度確認して .DS_Store
がなくなっているかチェックします。
find . -name ".DS_Store"
何も表示されなければ、削除は完了です。
3. Git の管理から .DS_Store を削除する
すでに Git に追加されてしまっている .DS_Store
は、.gitignore
に追加しただけでは無視されません。Git の管理から .DS_Store
を削除するには、以下のコマンドを実行します。
git rm --cached $(git ls-files | grep .DS_Store)
または、以下の方法でも .DS_Store
をすべて Git の管理から削除できます。
git rm --cached -r .
その後、.gitignore
を適用し直すために再度追加してコミットします。
git add .gitignore
4. 変更をコミット & プッシュ
削除した .DS_Store
を反映させるために、コミットを行います。
git commit -m "Remove .DS_Store and update .gitignore"
そして、リモートリポジトリにプッシュします。
git push origin <branch-name>
※ <branch-name>
は現在作業しているブランチ名に置き換えてください(例: main
や develop
など)。
5. .DS_Store を完全に無視するための対策
5.1 グローバル .gitignore を設定する
もし .DS_Store
をすべての Git プロジェクトで無視したい場合は、グローバル .gitignore
を設定できます。
git config --global core.excludesfile ~/.gitignore_global
その後、~/.gitignore_global
に .DS_Store
を追加します。
echo ".DS_Store" >> ~/.gitignore_global
これで、すべてのプロジェクトで .DS_Store
を無視するようになります。
まとめ
✅ .gitignore
に .DS_Store
を追加して今後の追加を防ぐ
✅ find . -name ".DS_Store" -delete
で既存の .DS_Store
を削除
✅ git rm --cached
で Git の管理から .DS_Store
を削除
✅ 変更をコミット & プッシュ
✅ .gitignore_global
を設定すれば、すべてのリポジトリで .DS_Store
を無視可能
これで .DS_Store
を Git から完全に排除できます! 🚀
コメント