Cara Mengatasi File .DS_Store yang Muncul Otomatis di Project GitHub pada macOS

 .DS_Store adalah file metadata yang otomatis dibuat Finder macOS untuk menyimpan pengaturan tampilan folder, posisi ikon, dan sejenisnya. File ini tidak perlu masuk ke Git.

Solusi paling aman adalah mengabaikannya lewat .gitignore.

Untuk satu project saja

Di root project, buat atau edit file .gitignore:

.DS_Store
**/.DS_Store

Lalu hapus .DS_Store yang sudah terlanjur muncul:

find . -name ".DS_Store" -delete

Jika file tersebut sudah pernah masuk Git staging atau sudah ter-commit, jalankan:

git rm --cached .DS_Store

Jika .DS_Store tersebar di beberapa subfolder:

find . -name ".DS_Store" -print0 | xargs -0 git rm --cached --ignore-unmatch

Setelah itu commit perubahan:

git add .gitignore
git commit -m "Ignore macOS .DS_Store files"

Supaya berlaku untuk semua project Git

Lebih praktis membuat global .gitignore:

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

Cek konfigurasi:

git config --global core.excludesfile

Output-nya seharusnya:

/Users/nama-user/.gitignore_global

Dengan ini, .DS_Store otomatis diabaikan di seluruh repository Git pada Mac kamu.


Bersihkan semua .DS_Store di folder project

Dari root project:

find . -name ".DS_Store" -delete

Atau dari folder home untuk membersihkan banyak folder sekaligus:

find ~ -name ".DS_Store" -delete

Hati-hati dengan perintah kedua karena cakupannya cukup luas.


Apakah bisa mencegah Finder membuat .DS_Store?

Untuk folder lokal, Finder tetap dapat membuat file tersebut. Biasanya cukup gunakan global .gitignore.

Untuk mencegah .DS_Store dibuat pada network drive dan USB drive:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
killall Finder

Rekomendasi utamanya: gunakan global .gitignore, lalu hapus .DS_Store yang sudah terlanjur masuk repository.

No comments:

Post a Comment