Mengapa saya harus menulis pesan komit? Saya tidak mau dan saya pikir itu bodoh setiap saat.
Frontend GUI yang saya gunakan yang tidak diketahui namanya akan memaksa Anda untuk melakukannya. Saya mendengar orang lain melakukannya setiap kali walaupun mereka menggunakan VCS pada baris perintah.
Jika saya melakukan beberapa kali sehari dan belum menyelesaikan fitur apa yang saya tulis? Saya HANYA pernah menulis pesan setelah melakukan banyak dan saya merasa sudah waktunya untuk tag mini atau ketika saya melakukan tag yang sebenarnya.
Apakah saya benar atau saya kehilangan sesuatu? Saya juga menggunakan sistem terdistribusi
dvcs
version-control
pengguna2528
sumber
sumber
Jawaban:
Kepada semua orang yang mengatakan "komit hanya ketika Anda memiliki pesan yang berguna, dipikirkan dengan matang, dan ketika fitur Anda 100% selesai, dan Anda memiliki unit test untuk itu", saya katakan: Anda masih dalam pola pikir SVN .
Jika Anda menggunakan git , inilah yang saya sebut alur kerja cerdas:
git rebase -i
dari komit 'berantakan' pertama yang Anda tambahkan dan perbaiki riwayat lokal Anda dengan menekan, mengedit, menghilangkan, dan membersihkan riwayat terkini Anda menjadi komitmen yang logis dan bersih dengan pesan yang bagus .Perhatikan bahwa langkah 3 adalah ketika Anda berakhir dengan komitmen bagus yang Anda kejar, dan bahwa menggunakan SVN Anda harus pantang berkomitmen sampai Anda telah melakukan dua langkah pertama, yang disarankan oleh sebagian besar jawaban lainnya. TKI, Anda tidak ingin memberikan kode yang setengah tertulis, belum teruji pada orang lain, jadi Anda tidak berkomitmen selama seminggu, sampai fitur Anda selesai. Anda tidak menggunakan kontrol versi secara maksimal.
Perhatikan juga bahwa di mana saja antara langkah 1 dan 3, Anda dapat
git push
mengubah mirror repo pribadi Anda di server untuk mendapatkan cadangan gratis jika HDD laptop Anda mati.sumber
Karena ketika beberapa pengelola yang buruk memburu bug dan menemukan bahwa itu ditambahkan dalam rev. xyz, dia akan ingin tahu apa rev. xyz seharusnya melakukannya.
sumber
Anda mengomentari kode sumber Anda, bukan?
Anda menulis komentar terbaik, yang mengatakan mengapa karena kode hanya mengatakan bagaimana ?
Pesan komit adalah komentar seperti itu, dan oleh karena itu sangat penting dan semakin Anda berpikir untuk memperbaikinya, semakin bermanfaat bagi pengelola perangkat lunak di masa mendatang.
Untuk perangkat lunak aktif apa pun, komentar khusus ini pada akhirnya akan ditampilkan dalam sesuatu seperti
(ditemukan di http://longair.net/blog/2009/04/25/a-few-git-tips/ ). Hal ini memungkinkan pandangan mata burung tentang siapa yang telah bekerja pada perangkat lunak kapan , dan apa yang mereka lakukan.
Perhatikan bahwa ini adalah tujuan akhir untuk komentar komit, yaitu muncul dalam daftar seperti itu yang mengatakan " apa " bagi diri masa depan Anda atau kolega Anda, dan BAHWA adalah alasan mengapa Anda harus berhati-hati dalam menulis pesan komit yang baik.
sumber
Jika pesan komit tampak bodoh bagi Anda, maka sepertinya Anda menggunakan komit salah.
Komit harus dibuat untuk alasan yang baik - komitmen harus terkait dengan tugas yang telah Anda uraikan untuk fitur yang sedang Anda kerjakan. Apakah tugas itu formal atau hanya dalam pikiran Anda, setiap perubahan yang Anda lakukan harus lebih atau kurang menyelesaikan tugas dan karena itu berfungsi dalam beberapa cara.
Kemudian pesan komit Anda memiliki tujuan yang jauh lebih baik. Jelaskan tugas yang Anda selesaikan dan jika tidak dilacak di tempat lain, mengapa tugas itu diperlukan atau apa tujuannya:
Kemudian Anda atau pengembang lain dapat menelusuri repositori atau riwayat file dan cukup mudah melihat di mana evolusi tertentu terjadi dan mengapa. Atau, jika revisi tertentu terbukti bersalah karena bug, pesan komit akan memberikan petunjuk tentang mengapa baris itu dimasukkan, sehingga Anda tidak hanya merobeknya dan mungkin mengulangi sesuatu yang dianggap sebagai kesalahan. diperbaiki, dan Anda bisa memperbaikinya dengan cara yang benar.
sumber
Komentar komitmen tidak menyelesaikan segalanya. Selalu ada kemungkinan mereka menyesatkan sebanyak yang mereka bantu - terutama ketika pengembang marah karena harus memasukkan mereka. Coba ini: anggap mereka seperti jejak remah roti di hutan atau titik jalan pendakian gunung atau pelacak. Jika dilakukan dengan benar, mereka dapat menguraikan jalur yang membingungkan.
Jangan membuat masalah besar dari mereka. Jujur:
Tetap pendek dan "gambaran besar". Jika memungkinkan, lihat nomor masalah di sistem fitur / bug Anda. Beberapa UI kontrol versi menyertakan bidang untuk hal semacam ini.
sumber
Ini mengurangi jumlah WTF / menit;)
yang diterjemahkan menjadi tim yang lebih bahagia (yang tidak membenci Anda), dan hasil tim yang lebih baik berpotensi dengan biaya lebih rendah
sumber
Jadi seluruh tim Anda tahu WTF yang Anda lakukan memeriksa perubahan pada pohon proyek.
sumber
karena jika Anda tidak berlatih memasukkan pesan komit yang layak, Anda akan berakhir seperti rekan saya yang memasukkan pesan seperti
atau
untuk komit dengan lebih dari seratus file yang diubah (jangan bercanda di sini !!).
Jika Anda menjadi pengembang seperti itu, Anda akan terlihat bodoh di mata seluruh dunia, tidak peduli betapa bodohnya Anda hanya memasukkan pesan.
sumber
Mengapa Anda berkomitmen jika perubahan tidak berarti?
Cukup lakukan perubahan yang memiliki arti. Misalnya saya melakukan refactoring yang agak besar pada minggu lainnya yang memakan waktu sekitar 3 hari. Saya akan memiliki banyak komitmen selama waktu itu. Beberapa perubahan agak kecil ('berganti nama kelas X ke Y untuk mencerminkan tanggung jawab baru' atau 'pindah metode Z () ke kelas Q') dan yang lain benar-benar besar. Ketika saya selesai dengan fitur / refactoring, saya memeriksa apakah ada komit yang bisa dihancurkan (setidaknya git mendukungnya, tidak tahu tentang alat lain), tetapi biasanya saya membiarkannya apa adanya karena itu membantu nanti.
Saya kira Anda tidak akan melakukan di tengah-tengah mengedit baris, jadi itu harus memiliki arti. Jelaskan apa yang Anda lakukan sejak komit terakhir.
sumber
bayangkan suatu kondisi ketika Anda merusak sistem Anda dengan membuat beberapa perubahan dan menyadari hal ini setelah beberapa kali dilakukan oleh tim. Anda tidak ingat apa perubahannya tetapi Anda ingat ada sesuatu yang salah ketika Anda meningkatkan fitur X atau menghapus file dari modul Y.
Namun sayangnya angka revisi tidak memberi tahu Anda ketika Anda mengubah X atau Y. Jadi, pilihan Anda adalah membaca semua kode yang dilakukan selama N hari terakhir atau hanya membaca pesan komit terperinci yang Anda tulis (jauh lebih mudah dibaca daripada kode).
Jadi jika Anda menulis teks yang sama, membosankan, tidak berguna, tidak terkait dalam pesan komit, karena Anda harus, lebih berbahaya daripada memiliki pesan komit. Karena alih-alih menemukan root bug, pesan yang salah akan menyesatkan Anda.
Jadi cobalah untuk menulis pesan komit yang bermakna setiap kali Anda komit yang dapat membantu Anda dan pengelola juga.
sumber
Jika Anda bekerja dengan orang lain, maka melakukan pesan sangat penting untuk benar-benar melihat apa yang telah dilakukan orang lain: mencari perbedaan untuk masing-masing jauh lebih banyak pekerjaan dan Anda mungkin gagal memahami mengapa seseorang melakukannya. Jika Anda bekerja dengan orang lain dan seseorang (mungkin bukan Anda) harus benar-benar melihat ke belakang, misalnya untuk melacak bagaimana perilaku berubah sejak versi sebelumnya dengan cara yang tidak terduga ... Anda benar-benar membuat hidup lebih sulit dengan tidak menggunakan petunjuk bermanfaat dalam komit pesan.
Jika Anda bekerja sendirian ... pada proyek yang sebagian besar diberi kode 'apa adanya' (misalnya satu situs web atau skrip sederhana) saya dapat lebih atau kurang melihat dari mana Anda berasal. Jika saya mengerjakan sesuatu seperti itu, saya hanya peduli dengan tanggal / waktu atau perubahan terbaru saat melanjutkan mengerjakan sesuatu (Anda memiliki titik untuk dipulihkan, tetapi itu hanya penting selama pengembangan, bukan setelah Anda menerapkannya). Kontrol versi hanyalah cara untuk membuat cadangan dengan beberapa kelebihan - Saya sepenuhnya setuju bahwa tidak menggunakan sistem secara lengkap - tetapi pada beberapa proyek skala kecil, yang mungkin tidak diperlukan.
Pikiran itu muncul di benak saya sebelum Kontrol Versi digunakan dalam dua cara terpisah, satu mendokumentasikan perubahan dalam proyek, dan yang lainnya sebagai uluran tangan bagi pengembang di tempat ... dan keduanya sama sekali berbeda satu sama lain. Pesan komit sangat penting di satu sisi, dan mungkin sebagian besar tidak berguna di sisi lain.
sumber
Anda melewatkan sesuatu. Ada harus menjadi alasan untuk melakukan komit jika tidak, anda tidak akan melakukannya.
Yang perlu Anda lakukan di komentar adalah memasukkan alasannya ke dalam kata-kata, meskipun hanya itu
wip: adding new state objects
sumber
Seperti banyak yang lain, saya melakukan sedikit pengkodean di waktu luang dan menggunakan sistem kontrol revisi untuk melacak perkembangan dan perubahan saya. Jumlah waktu luang yang saya miliki sangat bervariasi dari minggu ke minggu dan bulan ke bulan. Banyak kali ketika saya tidak punya waktu untuk kode pada proyek selama berminggu-minggu atau bahkan berbulan-bulan, dan waktu seperti yang saya miliki biasanya berkisar antara 10 menit (hari biasa) hingga 40 menit (hari baik). Kondisi itu tentu saja tidak bagus - terutama untuk masalah debugging.
Sangat penting untuk membuat catatan yang tidak akan hilang, dan mudah diambil. Pada akhir setiap sesi, pekerjaan sesi akan dilakukan dengan pesan rinci. Saya kemudian bisa melalui sejarah komit dan melacak kemajuan dan proses berpikir saya. Ini memungkinkan saya untuk menemukan di mana saya berada minggu lalu, atau bulan lalu dengan paling sedikit waktu berharga yang hilang.
Poin yang saya coba ilustrasikan adalah bahwa pesan komit yang baik membantu Anda (dan siapa pun yang datang setelah Anda) untuk mencari tahu apa yang telah terjadi, apa yang telah terjadi, ke mana segala sesuatu berjalan dan di atas segalanya mengapa.
sumber
Pikirkan hal ini secara logis selama satu menit. Ketika Anda melakukan itu berarti sesuatu telah dilakukan. Jika Anda tidak meninggalkan pesan, bagaimana orang lain akan tahu apa yang telah dilakukan?
sumber
Jika Anda tidak berkomentar tentang komitmen Anda, Anda mungkin tergoda untuk berkomentar tentang perubahan pada sumbernya. Pada waktunya, itu dapat mengacaukan sumbernya.
sumber
Pesan komit adalah cara cepat untuk mengetahui apa yang terjadi pada check-in itu dan akan membantu pengembang lainnya di tim Anda ketika mereka ingin mengetahui aspek kode mana yang diubah di mana revisi (untuk alasan tertentu).
Pada catatan terkait, saya sarankan menentukan nomor kasus pelacak bug (saya harap Anda menggunakan satu) dalam pesan komit, sehingga akan sangat membantu bagi masa depan untuk dengan mudah melacak hal-hal.
sumber
Sehingga pengelola kode itu 1 tahun kemudian tahu siapa yang harus diburu untuk kode mengerikan itu. :)
sumber
blame
gunanya fitur vcs.