Melihat Perubahan: git diff
Membandingkan versi berkas: perubahan yang belum di-stage, yang sudah di-stage, dan antar commit.
Sebelum commit, periksa dulu
git status memberi tahu berkas mana yang berubah. git diff menunjukkan baris mana yang berubah. Memeriksa diff sebelum commit adalah kebiasaan terbaik: ia menangkap sisa console.log, password yang tak sengaja tertulis, atau berkas yang tidak ingin kamu commit.
Dua jenis diff
| Perintah | Membandingkan |
|---|---|
git diff | Working directory vs staging (perubahan yang belum di-add) |
git diff --staged (atau --cached) | Staging vs commit terakhir (yang akan masuk commit berikutnya) |
Membaca keluaran diff
diff --git a/resep.txt b/resep.txt
index 4f1c2a7..9be0d33 100644
--- a/resep.txt
+++ b/resep.txt
@@ -1,2 +1,3 @@
Nasi
Telur
+Kecap
--- a/resep.txt= versi lama,+++ b/resep.txt= versi baru.@@ -1,2 +1,3 @@= bagian ("hunk"): versi lama mulai baris 1 sepanjang 2 baris; versi baru mulai baris 1 sepanjang 3 baris.- Baris berawalan
+= ditambahkan,-= dihapus, spasi = konteks tak berubah.
Alur pemeriksaan yang sehat
git diff # apa yang belum di-stage?
git add resep.txt
git diff --staged # apa yang akan di-commit?
git commit -m "Tambah kecap pada resep"
Setelah git add, git diff biasa menjadi kosong (karena working directory dan staging sudah sama) — jangan panik, gunakan --staged.
Variasi lain
git diff HEAD~1 HEAD # antara dua commit
git diff main fitur-login # antara dua branch
git diff --stat # ringkasan jumlah baris saja
git diff --name-only # hanya nama berkas
git diff resep.txt # hanya satu berkas
Catatan
- Berkas untracked tidak muncul di
git diff; Git baru "melihatnya" setelah di-add. - Diff berkas biner (gambar, PDF) hanya menampilkan "Binary files differ".