Secara sederhana, .gitkeep adalah file dummy konvensional. Keberadaannya hanya melayani satu tujuan: memaksa Git untuk melacak folder yang seharusnya kosong.
Mengapa Itu Dibutuhkan?
Logika desain Git adalah “melacak perubahan file”, bukan “melacak folder”. Jika proyek Anda berisi folder kosong, Git akan mengabaikannya sepenuhnya dan tidak akan mengunggahnya ke GitHub atau server Anda.
Hal ini menimbulkan masalah: terkadang kode Anda mengharuskan direktori tertentu ada untuk berjalan, tetapi Anda tidak ingin mengunggah data pengujian atau file sementara. Jika direktori tidak ada, program mungkin akan crash.
Folder-folder Ini Biasanya Adalah:
logs/: Untuk file loguploads/: File yang diunggah oleh penggunatmp/: File sementaracache/: Data cache
Direktori ini diperlukan saat runtime, isinya tidak boleh di-commit, tetapi folder itu sendiri harus ada.
Bagaimana Cara Kerjanya
Untuk “mengelabui” Git agar menyimpan folder ini, kami menempatkan file tersembunyi tanpa fungsi nyata di dalamnya, membuat Git berpikir, “Oh! Ada sesuatu di sini, saya perlu mencatatnya.”
Analogi Praktis:
Bayangkan Anda sedang membangun rumah (menulis proyek):
| File | Deskripsi |
|---|---|
.gitignore |
Seperti “Label Jangan Dibuang”, memberi tahu petugas kebersihan (Git) barang apa saja (seperti makanan kadaluwarsa, kertas bekas) yang sama sekali tidak boleh dipindahkan ke rumah baru. |
.gitkeep |
Seperti “Kotak Penanda”. Rumah baru belum ada perabotannya, tetapi Anda perlu memesan tempat untuk ruang penyimpanan, jadi Anda meletakkan kotak di sana untuk memberi tahu petugas pindahan bahwa area ini adalah bagian dari rumah dan tidak boleh dibongkar. |
Bagaimana Cara Menggunakannya?
- Buat file bernama
.gitkeepdi dalam folder kosong. - Isi file boleh kosong, atau Anda bisa menulis “Keep this directory”.
- Lakukan
git adddancommitfile ini.
Membandingkan .gitkeep vs .gitignore
| Fitur | .gitkeep |
.gitignore |
|---|---|---|
| Status Resmi | Tidak Resmi (Hanya konvensi komunitas) | Resmi (Fitur bawaan Git) |
| Fungsi Utama | Menyimpan folder, mencegahnya dilupakan oleh Git | Mengecualikan file, mencegahnya dilacak oleh Git |
| Skenario Umum | Folder log kosong, folder cache | File kata sandi, node_modules, file sementara |
Saran Praktis: Berpikir “Outside the Box”
Meskipun .gitkeep umum digunakan, sebenarnya itu bukan bagian resmi dari Git. Faktanya, Anda bisa menggunakan README.md atau .placeholder untuk mencapai efek yang sama. Tapi mengapa semua orang lebih suka .gitkeep? Karena sudah jelas dengan sendirinya: “File ini tidak melakukan apa-apa selain menjaga Git agar tidak menghapus folder ini.”
Jika Anda ingin terlihat sedikit lebih profesional, ada pendekatan yang lebih kreatif dan lebih fungsional daripada hanya menggunakan .gitkeep:
Tempatkan .gitignore di folder kosong dengan konten berikut:
# Abaikan semuanya di direktori ini
*
# Tapi jangan abaikan saya (file .gitignore ini sendiri)
!.gitignore
Ini memastikan bahwa Anda menyimpan folder sambil memastikan bahwa file sampah di dalamnya tidak pernah di-commit secara tidak sengaja. Ini adalah metode “tahan banting” (Foolproof) yang sebenarnya.
Kesimpulan
.gitkeepadalah kompromi manusia terhadap logika desain Git.- Ini bukan spesifikasi resmi, tetapi telah menjadi standar de facto bagi pengembang.
- Yang benar-benar penting adalah memahami cara kerja
.gitignore;.gitkeephanyalah alat kecil untuk membantu Git “memahami” folder kosong.