Daftar nama berkas yang berubah belum menjelaskan apa yang akan masuk ke commit. Satu file dapat berisi perbaikan yang diinginkan sekaligus eksperimen sementara. Membaca diff membantu memisahkan keduanya sebelum riwayat dibagikan. Kebiasaan ini berguna bukan hanya untuk programmer, tetapi juga penulis dokumentasi dan pengelola blog yang menyimpan artikel, konfigurasi, serta aset dalam repository Git yang sama selama proses pembaruan situs.
Mulailah dari tujuan perubahan. Tulis satu kalimat tentang masalah yang hendak diselesaikan, kemudian cocokkan seluruh perubahan dengan tujuan tersebut. Jika sebuah baris tidak dapat dijelaskan hubungannya, periksa apakah ia memang diperlukan. Jangan menganggap perubahan kecil aman hanya karena jumlah barisnya sedikit. Satu nilai konfigurasi atau alamat tujuan dapat memengaruhi perilaku layanan lebih luas daripada penambahan beberapa paragraf dokumentasi baru.
Pahami perbedaan working tree dan staging
Git membedakan perubahan pada berkas kerja dari perubahan yang sudah dimasukkan ke staging. Perintah git diff biasanya menampilkan perubahan yang belum staged, sedangkan git diff --cached menunjukkan isi staged terhadap commit acuan. Jika hanya memeriksa salah satunya, kamu dapat melewatkan bagian penting. Gunakan status untuk memahami keadaan repository sebelum memutuskan tampilan perbandingan yang sesuai dengan pertanyaan yang sedang diperiksa pada pekerjaan tersebut.
Berkas dapat berubah lagi setelah sebagian isinya staged. Akibatnya, versi kerja dan versi yang akan di-commit tidak selalu sama. Membaca file di editor saja belum membuktikan commit memuat isi terbaru yang diinginkan. Periksa staged diff tepat sebelum commit. Untuk berkas baru yang belum dilacak, perhatikan bahwa pemeriksaan diff biasa tidak menggantikan pembacaan isinya dan keputusan apakah file itu memang seharusnya masuk repository.
Jangan mengandalkan staging semua perubahan
Memasukkan semua berkas sekaligus dapat membawa log, hasil build, atau konfigurasi lokal yang tidak terkait. Pilih file sesuai kebutuhan dan tinjau aturan ignore. Namun, ignore bukan alat untuk membersihkan rahasia yang sudah terlanjur tercatat. Jika kredensial terpapar dalam riwayat atau remote, ikuti prosedur pencabutan dan penanganan yang sesuai, bukan hanya menambahkan nama file ke daftar ignore lalu menganggap masalah selesai.
Baca konteks sebelum menilai baris
Diff menyoroti baris ditambah dan dihapus, tetapi makna perubahan sering bergantung pada fungsi di sekitarnya. Jika potongan terlalu pendek, buka konteks lebih luas atau baca file lengkap. Perubahan kondisi dapat membuat cabang lain tidak dijalankan, sementara penggantian nama dapat mengubah rujukan yang tersebar. Jangan hanya menilai apakah baris baru terlihat masuk akal tanpa memeriksa pengaruhnya pada alur yang masih menggunakan struktur lama.
Untuk artikel, periksa apakah judul, label, sumber, dan gambar masih sesuai isi. Untuk konfigurasi, periksa domain, jalur direktori, serta variabel lingkungan. Gunakan pemeriksaan berbeda berdasarkan jenis berkas. Format yang rapi tidak membuktikan nilai konfigurasinya benar, dan kalimat yang lancar tidak membuktikan referensinya mendukung klaim. Diff membantu menentukan bagian yang perlu dibaca, bukan menggantikan pengetahuan tentang pekerjaan yang sedang diubah oleh penulis atau pengembang.
Pisahkan perubahan mekanis dan perubahan perilaku
Pemformatan ulang banyak baris dapat menyulitkan peninjau menemukan perubahan logika. Jika memungkinkan, pisahkan perapian mekanis dari perbaikan perilaku sehingga alasan masing-masing jelas. Namun, jangan memecah commit secara berlebihan sampai keadaan perantara tidak dapat digunakan. Pilih unit perubahan yang dapat dijelaskan dan diuji. Tujuannya mempermudah pemahaman, bukan mengikuti angka jumlah commit tertentu yang dianggap rapi oleh tim tanpa melihat konteks pekerjaan.
Ketika alat menghasilkan perubahan besar, periksa keluaran sebelum menerimanya. Generator dapat menulis ulang konfigurasi atau mengubah dependensi transitif melalui lockfile. Jangan menghapus lockfile hanya karena diff panjang dan sulit dibaca. Pahami mengapa ia berubah, jalankan pemeriksaan paket, dan pastikan perintah instalasi yang digunakan sesuai proyek. Berkas otomatis tetap memengaruhi hasil kerja meskipun tidak ditulis manual dalam editor pada saat pengerjaan fitur tersebut.
Kenali batas pemeriksaan teks
Gambar dan berkas biner membutuhkan cara tinjauan berbeda. Diff teks mungkin hanya memberi tahu bahwa berkas berubah. Buka asetnya, periksa dimensi, ukuran, dan hak penggunaan. Pada blog, pastikan nama file serta rujukan konten masih cocok. Jangan menyatakan gambar telah diperiksa hanya karena file tersedia di folder dan build tidak gagal; gambar yang salah tetap bisa tampil dengan sukses pada halaman pembaca.
Tutup dengan pengujian dan pesan commit
Jalankan pemeriksaan yang sesuai perubahan, lalu baca kembali staged diff jika alat uji menghasilkan file tambahan. Pesan commit sebaiknya menjelaskan tujuan, bukan hanya mengatakan pembaruan. Bila ada batas pengujian, catat pada deskripsi perubahan. Riwayat yang berguna membantu orang lain memahami keputusan dan memudahkan pencarian sumber regresi ketika masalah baru ditemukan setelah pekerjaan digabungkan atau diterapkan pada lingkungan produksi yang berbeda dari komputer pengembang.
Perhatikan penghapusan saat meninjau perubahan sebelum commit
Baris yang hilang sama pentingnya dengan baris tambahan. Saat menghapus validasi atau pengujian, cari alasan semula aturan itu dibuat. Ia mungkin melindungi kasus yang jarang muncul pada contoh biasa. Jika aturan sudah tidak relevan, jelaskan perubahan kebutuhannya dan tambahkan bukti yang sesuai. Jangan menghapus pemeriksaan hanya karena menghalangi hasil cepat pada satu skenario pengembangan.
Untuk perubahan dokumentasi, periksa apakah tautan dari halaman lain masih menuju bagian yang tersedia. Penghapusan heading dapat memutus anchor meskipun teks utama tetap terbaca. Jalankan pemeriksa tautan internal setelah mengubah struktur dan baca hasilnya, bukan hanya mengandalkan keberhasilan proses build sebagai bukti semua tujuan navigasi tetap valid.


