Featured image of post Mengapa Git Tidak Melacak Folder Kosong? Apa Fungsi .gitkeep dan .gitignore?

Mengapa Git Tidak Melacak Folder Kosong? Apa Fungsi .gitkeep dan .gitignore?

Selami lebih dalam mengapa Git mengabaikan folder kosong, dan cara menggunakan .gitkeep dan .gitignore dengan benar untuk mengelola struktur direktori proyek. Termasuk contoh praktis dan praktik terbaik.

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 log
  • uploads/: File yang diunggah oleh pengguna
  • tmp/: File sementara
  • cache/: 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?

  1. Buat file bernama .gitkeep di dalam folder kosong.
  2. Isi file boleh kosong, atau Anda bisa menulis “Keep this directory”.
  3. Lakukan git add dan commit file 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

  • .gitkeep adalah 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; .gitkeep hanyalah alat kecil untuk membantu Git “memahami” folder kosong.

Reference

All rights reserved,未經允許不得隨意轉載
Dibangun dengan Hugo
Tema Stack dirancang oleh Jimmy