Commit Git Favorit Saya (2019)
(dhwthompson.com)Commit Git Favorit Saya
- Menekankan pentingnya pesan commit Git, dan menganggapnya sebagai salah satu alat paling kuat untuk mendokumentasikan codebase.
- Menjelaskan alasannya dengan mencontohkan commit yang ditulis oleh pengembang Dan Carley berjudul "Convert template to US-ASCII to fix error".
- Berdasarkan pengalamannya di GDS (Government Digital Service), salah satu manfaat dari menulis kode secara terbuka adalah contoh seperti ini bisa dibagikan juga kepada orang-orang di luar organisasi.
Mengapa commit ini bagus
- Perbandingan antara pesan commit dan perubahan kode memang menarik, tetapi itu bukan alasan utama mengapa commit ini layak dibagikan.
- Jika ini dibuat oleh organisasi atau pengembang lain, pesan commit tersebut mungkin hanya akan diringkas menjadi
change whitespaceataufix bug. - Sebaliknya, Dan meluangkan waktu untuk membuat pesan commit yang benar-benar berguna bagi orang-orang di sekitarnya.
Menjelaskan alasan perubahan
- Pesan commit terbaik tidak hanya menjelaskan apa yang diubah, tetapi juga mengapa perubahan itu dilakukan.
- Dalam commit ini, dijelaskan secara rinci mengapa pengujian yang diperkenalkan untuk mencocokkan isi
/etc/nginx/router_routes.confgagal dengan errorArgumentError: invalid byte sequence in US-ASCIIsaat dijalankan melaluibundle exec rake. - Informasi seperti ini sangat berharga untuk didokumentasikan, dan bisa dengan mudah hilang ketika orang lupa konteks aslinya atau pindah ke tim lain lalu meninggalkan organisasi.
Dapat dicari
- Pada bagian awal pesan commit terdapat pesan error yang memicu perubahan, sehingga siapa pun dapat menjalankan
git log --grep "invalid byte sequence"di codebase atau memakai pencarian commit GitHub untuk mencari error tersebut. - Bahkan, beberapa orang benar-benar bisa menemukan masalah ini lewat pencarian, lalu mengetahui siapa yang sebelumnya menemukannya dan bagaimana mereka menanganinya.
Menyampaikan cerita
- Pesan commit tersebut memuat detail tentang bagaimana masalah itu terlihat, seperti apa proses investigasinya, dan bagaimana proses penyelesaiannya.
- Pesan commit sangat cocok bukan untuk mendokumentasikan file, fungsi, atau baris kode tertentu, melainkan untuk mendokumentasikan informasi tambahan tentang perjalanan yang dialami codebase.
Membuat semua orang sedikit lebih pintar
- Fakta bahwa Dan mendokumentasikan perintah-perintah yang ia jalankan di setiap tahap bisa menjadi cara ringan untuk berbagi pengetahuan di dalam tim.
- Dengan membaca pesan commit ini, seseorang bisa mempelajari beberapa tips berguna tentang perangkat Unix.
- Baik orang yang meninjau perubahan ini maupun orang yang menemukan commit ini di kemudian hari sama-sama bisa mempelajari hal-hal tersebut.
Membangun empati dan kepercayaan
- Paragraf terakhir menambahkan konteks yang manusiawi.
- Saat membaca ini, kita bisa merasakan frustrasi Dan karena harus menghabiskan satu jam melacak bug yang licik, sekaligus kepuasan setelah berhasil menyelesaikannya.
- Pesan commit seperti ini membantu kita mengingat bahwa di balik setiap perubahan ada manusia yang telah membuat keputusan terbaik yang mereka bisa.
Pentingnya commit yang baik
- Contoh ini memang kasus yang ekstrem, dan tidak berarti semua commit diharapkan memiliki tingkat detail seperti ini.
- Namun, ini adalah contoh yang sangat baik dalam menjelaskan konteks di balik perubahan, membantu orang lain belajar, dan berkontribusi pada model mental kolektif tim terhadap codebase.
- Jika ingin mempelajari lebih lanjut tentang manfaat pesan commit yang baik dan alat yang membantu menyusunnya dengan lebih mudah, penulis merekomendasikan "Telling stories through your commits" karya Joel Chippindale dan "A branch in time" karya Tekin Süleyman.
Pendapat GN⁺
- Artikel ini menekankan pentingnya pesan commit Git, serta menunjukkan betapa kuatnya pesan commit sebagai alat untuk mendokumentasikan sejarah codebase dan berbagi pengetahuan.
- Pesan commit Dan Carley menghadirkan contoh teladan dalam banyak aspek, termasuk alasan perubahan, kemudahan pencarian, penyampaian cerita, berbagi pengetahuan, serta membangun empati dan kepercayaan.
- Dengan memahami dan mempraktikkan pentingnya menulis pesan commit yang baik, para pengembang dapat merasakan kolaborasi dan pemeliharaan kode yang lebih baik, yang pada akhirnya dapat berkontribusi pada peningkatan produktivitas dan efisiensi seluruh tim.
1 komentar
Opini Hacker News
Pendapat salah satu pendiri GitHub:
git blame.Pentingnya pesan commit untuk masalah tertentu:
Perasaan pribadi tentang pesan commit:
Strategi menulis baris pertama pesan commit:
git log, baris pertama adalah yang paling penting.Sulitnya mengubah pesan commit:
.md, wiki, atau Confluence mudah diperbarui.Pentingnya penjelasan rinci untuk commit kecil:
Keterbatasan pesan commit dan masalah pada alat:
Pentingnya kebersihan commit dibanding pesan commit:
Kritik terhadap autosquash dan rebase: