Commit Pertamamu & Pesan Commit yang Baik
Menyimpan snapshot dengan git commit, jalan pintas -a, dan seni menulis pesan commit yang berguna.
Apa itu commit?
Commit adalah snapshot seluruh proyek pada satu momen, lengkap dengan: ID unik (hash), pesan, penulis, waktu, dan penunjuk ke commit sebelumnya (parent). Rangkaian commit membentuk riwayat; setiap commit "mengingat" induknya sehingga riwayat tidak bisa diubah tanpa mengubah hash.
Membuat commit
git add halo.txt
git commit -m "Tambah berkas halo.txt"
Keluarannya:
[main (root-commit) 3f2a1b9] Tambah berkas halo.txt
1 file changed, 1 insertion(+)
create mode 100644 halo.txt
main= branch tempat commit dibuat;root-commit= commit pertama (tanpa induk).3f2a1b9= 7 karakter pertama hash commit.- Ringkasan: berapa berkas/baris yang berubah.
Tanpa -m, Git membuka editor teks untuk menulis pesan. Di simulator, selalu pakai -m.
Jalan pintas: git commit -a
git commit -am "pesan" otomatis men-stage semua berkas yang sudah dilacak dan berubah, lalu commit. Perhatikan: berkas baru (untracked) tidak ikut, harus git add sekali dulu.
Commit kosong?
Git menolak commit bila tidak ada perubahan staged: nothing to commit, working tree clean. Itu bukan error berbahaya, hanya pemberitahuan.
Pesan commit yang baik
Pesan commit adalah surat untuk dirimu di masa depan dan rekan timmu. Panduan praktis:
- Jelaskan APA dan MENGAPA, bukan sekadar "update". Bandingkan
fixvsPerbaiki total keranjang saat diskon lebih dari 100%. - Baris pertama ringkas (maks. ±50 karakter), diawali kata kerja: Tambah, Perbaiki, Hapus, Ubah, Rapikan.
- Satu commit = satu perubahan logis. Jangan campur perbaikan bug dengan fitur baru.
- Jika perlu penjelasan panjang: baris kosong, lalu paragraf rincian (gunakan editor tanpa
-m, atau-mdua kali).
git commit -m "Perbaiki total keranjang saat diskon melebihi 100%" -m "Sebelumnya total bisa bernilai negatif. Sekarang dibatasi minimal 0."
Seberapa sering commit?
Sering dan kecil. Commit kecil mudah dibaca, mudah di-revert, dan memudahkan pencarian sumber bug. Aturan sederhana: commit setiap kali satu bagian pekerjaan selesai dan berjalan.
Anti-pola
- Pesan "update", "asd", "fix fix fix", "final".
- Commit berisi ratusan berkas tak terkait.
- Commit kode yang rusak ke branch utama.