Gitで .DS_Store を完全に排除する方法

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> は現在作業しているブランチ名に置き換えてください(例: maindevelop など)。


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 から完全に排除できます! 🚀

コメント

タイトルとURLをコピーしました