CodeKitHub
Alat Teks

Perbezaan Teks — Banding Dua Teks Dalam Talian

Kemas kini terakhir:

Untuk membandingkan dua teks, tampal setiap versi ke dalam kotak di bawah dan alat ini menyerlahkan setiap baris yang ditambah dengan hijau dan setiap baris yang dibuang dengan merah, baris yang tidak berubah ditunjukkan sebagai konteks — pendekatan diff yang sama digunakan git dan alat semakan kod. Semuanya kekal dalam pelayar anda.

Apakah alat ini?

Alat diff (perbezaan) membandingkan dua teks dan menunjukkan set perubahan minimum yang mengubah satu kepada yang lain. Begitulah cara sistem kawalan versi seperti Git memaparkan perubahan kod, dan ia sama berguna untuk membandingkan fail konfigurasi, kontrak, artikel atau mana-mana dua versi apa-apa sahaja.

Alat ini membandingkan baris demi baris menggunakan keluarga algoritma asas yang sama (longest common subsequence) seperti utiliti diff klasik, jadi outputnya kelihatan seperti semakan kod yang biasa: + untuk baris ditambah, − untuk baris dibuang.

Kenapa guna alat ini?

  • Lihat apa yang sebenarnya berubah antara dua versi dan bukan hanya membanding secara pandangan mata.
  • Output gaya git yang biasa: penambahan hijau, pembuangan merah, baris konteks di antaranya.
  • Kiraan ringkasan baris ditambah dan dibuang sepintas lalu.
  • Berfungsi dengan sebarang teks — kod, konfigurasi, dokumen, senarai.
  • Peribadi: kedua-dua teks kekal dalam pelayar anda, tiada apa dimuat naik.

Cara menggunakannya

  1. Tampal teks asal dalam kotak kiri.
  2. Tampal versi yang diubah dalam kotak kanan.
  3. Klik "Compare".
  4. Baca hasilnya: baris hijau ditambah, baris merah dibuang, baris biasa tidak berubah.

Contoh

Input

Original:
line one
line two
line three

Changed:
line one
line 2
line three

Hasil

  line one
− line two
+ line 2
  line three

Baris tengah diubah, yang ditunjukkan diff sebagai membuang baris lama dan menambah yang baharu.

Kegunaan biasa

  • Menyemak perenggan yang ditulis semula oleh AI: tampal versi asal dan versi AI untuk melihat tepat ayat mana yang berubah, tanpa perlu membaca semula keseluruhan teks untuk mengesan suntingan.
  • Membandingkan dua draf kontrak: pindaan undang-undang selalunya lebih mudah diimbas sebagai diff baris berbanding perubahan yang dijejak apabila dokumen diformat semula antara versi.
  • Menyemak fail konfigurasi selepas deploy: tampal sebelum/selepas fail .env atau YAML untuk memastikan hanya baris yang dimaksudkan berubah.
  • Membandingkan semakan teks terjemahan: lihat baris mana yang sebenarnya disentuh oleh penterjemah atau editor antara draf.

Batasan yang perlu diketahui

Ini ialah diff peringkat baris, bukan diff peringkat perkataan — jika anda memindahkan perenggan daripada atas dokumen ke bawah tanpa mengubah teksnya, ia dipaparkan sebagai pembuangan penuh ditambah penambahan penuh, bukan anotasi "dipindahkan". Untuk prosa berperenggan di mana hanya beberapa perkataan berubah setiap ayat, alat diff peringkat perkataan akan menyerlahkan lebih sedikit teks, tetapi peringkat baris ialah standard untuk kod, konfigurasi dan dokumen berstruktur dan itulah fokus alat ini.

Bagaimana algoritma perbandingan berfungsi

Alat ini mencari longest common subsequence (LCS) antara kedua-dua teks — set baris terbesar yang muncul dalam susunan relatif yang sama pada kedua-dua versi, walaupun baris lain disisipkan atau dibuang di antaranya. Segala-galanya dalam subsequence biasa itu ditunjukkan sebagai konteks yang tidak berubah; segala-galanya yang lain dikelaskan sama ada dibuang (hanya wujud dalam yang asal) atau ditambah (hanya wujud dalam versi baharu). Ini ialah algoritma teras yang sama di sebalik utiliti diff Unix dan perbandingan baris demi baris Git, itulah sebabnya format outputnya kelihatan biasa serta-merta jika anda pernah menyemak pull request.

Satu akibat praktikal: jika satu baris diduplikasi di tempat lain dalam dokumen (teks yang sama tepat muncul dua kali), algoritma memadankannya dengan kejadian mana pun yang mengekalkan diff keseluruhan sekecil mungkin — kadangkala menghasilkan pemadanan yang sedikit berbeza daripada yang dijangka secara intuitif, walaupun kiraan baris ditambah/dibuang akhir sentiasa tepat tidak kira pendua mana yang dipadankan dengan yang mana.

Soalan lazim

Adakah ia membandingkan perkataan demi perkataan atau baris demi baris?

Baris demi baris, seperti git diff. Baris yang diubah dipaparkan sebagai satu pembuangan ditambah satu penambahan. Diff peringkat baris ialah standard untuk kod dan konfigurasi dan kekal mudah dibaca untuk teks yang besar.

Kenapa perubahan kecil menunjukkan keseluruhan baris sebagai berubah?

Kerana unit perbandingan ialah baris — sebarang perubahan di dalamnya menandakan keseluruhan baris. Pecahkan perenggan panjang kepada baris yang lebih pendek jika anda memerlukan ketelitian yang lebih halus.

Adakah ruang penting?

Ya. Baris mesti sepadan dengan tepat, jadi ruang di belakang atau inden yang berbeza menjadikan baris dianggap berbeza. Ini disengajakan — perbezaan ruang adalah perbezaan sebenar dalam kod dan konfigurasi.

Adakah terdapat had saiz?

Tiada had ketat, tetapi teks yang sangat besar (puluhan ribu baris) mungkin mengambil sedikit masa kerana perbandingan berjalan secara tempatan pada peranti anda.

Adakah teks saya dimuat naik untuk perbandingan?

Tidak. Algoritma diff berjalan sepenuhnya dalam pelayar anda dengan JavaScript. Kedua-dua teks kekal pada peranti anda — selamat untuk kontrak, dokumen dalaman dan kod yang belum dikeluarkan.

Alat berkaitan