Belajar dengan membaca secara berurutan

Perbedaan File — diff

Lihat cara memeriksa perbedaan antara dua file dengan diff. Kamu akan membaca baris mana yang ditambahkan, dihapus, atau diubah, lewat diagram dan terminal interaktif langsung di browser.

Kapan memakai diff

Pakai diff saat kamu ingin memeriksa apa yang kamu ubah setelah mengedit file, atau apakah dua file punya isi yang sama. Berikan dua file dan diff hanya menampilkan baris yang berbeda.

Membandingkan Dua File — diff

diff membandingkan dua file dan hanya menampilkan bagian yang berbeda. Kamu memakainya sebagai diff old.txt new.txt, dengan file pertama sebagai versi lama (sebelum) dan file kedua sebagai versi baru (sesudah). Baris yang sama tidak dicetak — hanya perbedaannya yang dilaporkan.

Membandingkan dua file dengan diff
old.txtapple / banana / cherrynew.txtapple / grape / cherrydiffOutput-banana+grapelamabarutampilkan diffdua file yang dibandingkan
diff old.txt new.txt menyandingkan dua file dan hanya menampilkan baris kedua yang berbeda sebagai -banana (lama) dan +grape (baru). Baris apple dan cherry yang sama tidak dicetak.

Di terminal browser, diff menampilkan perbedaan dalam format terpadu (unified format). --- dan +++ di awal adalah nama dua file yang dibandingkan, baris @@ menandai tempat perubahan terjadi, dan di bagian isi setiap baris yang dihapus diawali - dan setiap baris yang ditambahkan diawali +. Baris yang tidak berubah diawali spasi dan muncul bersama sebagai konteks.

SimbolArti
--- old.txtNama file pertama (lama) yang dibandingkan
+++ new.txtNama file kedua (baru) yang dibandingkan
@@ -N,M +N,M @@Info posisi tempat perubahan terjadi
- barisBaris yang dihapus (ada di file lama)
+ barisBaris yang ditambahkan (ada di file baru)
baris (spasi di awal)Baris yang tidak berubah, ditampilkan bersama sebagai konteks
Membaca format terpadu
Baris dihapus(file lama)@@ -1,3 +1,3 @@Menandai tempatperubahan terjadi- banana+ grapeBaris ditambahkan(file baru)
Dalam format terpadu, @@ menandai posisi perubahan, - baris yang dihapus (lama), dan + baris yang ditambahkan (baru). Baris yang tidak berubah muncul bersama dengan spasi di awal.
printf 'apple\nbanana\ncherry\n' > old.txt   # buat sampel
printf 'apple\ngrape\ncherry\n' > new.txt    # sampel yang beda satu baris
diff old.txt new.txt
--- old.txt
+++ new.txt
@@ -1,3 +1,3 @@
 apple
-banana
+grape
 cherry

① Jalankan printf 'apple\nbanana\ncherry\n' > old.txt untuk membuat file sampel pertama.

② Jalankan printf 'apple\ngrape\ncherry\n' > new.txt untuk membuat file sampel kedua, yang berbeda hanya pada baris 2.

③ Berikan kedua file ke diff dengan urutan ini dan baca baris mana yang mendapat tanda - (dihapus) dan + (ditambahkan). (Jalankan dengan benar dan penjelasan akan muncul.)

Linux console
0 / 3 selesai
Loading Linux Terminal...

Membaca Penambahan dan Penghapusan

Perbedaan tidak hanya berupa penulisan ulang. Saat sebuah baris hanya ditambahkan di file kanan, kamu hanya mendapat baris +; saat sebuah baris dihapus dari file kiri, kamu hanya mendapat baris -. Alih-alih - dan + muncul berpasangan seperti pada penulisan ulang, hanya salah satunya yang muncul adalah tanda penambahan atau penghapusan. Tukar urutan perbandingannya, dan perbedaan yang sama berbalik antara + (ditambahkan) dan - (dihapus).

printf 'one\ntwo\n' > base.txt        # buat sampel
printf 'one\ntwo\nthree\n' > more.txt  # sampel dengan satu baris ditambah
diff base.txt more.txt
--- base.txt
+++ more.txt
@@ -1,2 +1,3 @@
 one
 two
+three
Menukar urutan membalik + dan -
diffbase.txt more.txtTukar urutan dan+ dan - berbalikdiffmore.txt base.txt+ three(ditambahkan)- three(dihapus)+ muncul- muncul
Dengan dua file yang sama, diff base.txt more.txt menampilkan +three (ditambahkan), sedangkan diff more.txt base.txt yang dibalik menampilkan -three (dihapus).

① Jalankan printf 'one\ntwo\n' > base.txt untuk membuat sampel pertama dengan dua baris.

② Jalankan printf 'one\ntwo\nthree\n' > more.txt untuk membuat sampel kedua dengan baris ketiga ditambahkan.

③ Bandingkan dengan diff dalam urutan base.txtmore.txt dan pastikan baris yang ditambahkan diawali +.

④ Lalu balik urutannya menjadi more.txtbase.txt dan pastikan perbedaan yang sama muncul sebagai - (dihapus), serta menukar urutan membalik + dan -.

Linux console
0 / 4 selesai
Loading Linux Terminal...

diff dan patch, serta tampilannya di lingkungan lain

Diff format terpadu yang dihasilkan diff bisa diterapkan ke file lain apa adanya dengan perintah patch. Saat sebuah tim bertukar perbaikan, saling memberikan diff ini (sebuah patch) adalah hal yang umum. Kursus ini berfokus pada membaca diff dan tidak membahas penerapannya di sini.

Di terminal browser kursus ini, diff langsung menghasilkan format terpadu. Dengan GNU diff di Ubuntu dan sejenisnya, diff biasa menampilkan format tradisional memakai 2c2 dan < / >, dan menambahkan diff -u memberikan format terpadu yang sama seperti yang dipakai kursus ini.

QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Pada output format terpadu diff, simbol mana yang mengawali baris yang dihapus (yang ada di file lama)?

Soal 2Apa yang ditunjukkan oleh baris seperti @@ -1,3 +1,3 @@?

Soal 3Saat sebuah baris hanya ditambahkan di file kanan, seperti apa output diff?