Lewati ke konten utama

Generator Patch Unified Diff untuk Git

API reference

Bandingkan dua blok teks dan hasilkan unified diff (.patch) gaya Git dengan header hunk @@ yang benar, menggunakan algoritma diff Myers. Atur baris konteks dan path file a/b.

Input

Baris tanpa perubahan yang ditampilkan di sekitar setiap perubahan (standar diff -u adalah 3).

Output

Unified diff (.patch)
 

Masukkan kedua teks untuk melihat perbedaannya.

HTML tampilan diff
 
Apakah ini membantu?

Cara lain menggunakan alat ini

REST API

curl -X POST https://api.iotools.cloud/v1/tool/git-unified-diff-patch-generator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "originalText": "line one\nline two\nline three",
    "modifiedText": "line one\nline 2\nline three",
    "fromFile": "a.txt",
    "toFile": "b.txt",
    "contextLines": "3"
  }'

Ganti dengan kunci Anda sendiri dari akun Anda. Bidang alat menjadi isi permintaan — tanpa pembungkus.

Tanyakan ke agen AI

Use the IOTools `git-unified-diff-patch-generator` tool (Git Unified Diff Patch Generator) on this input:

YOUR_INPUT_HERE

Tempelkan ini ke agen mana pun yang terhubung ke server MCP IOTools, lalu tambahkan input Anda.

Widget sematan

<iframe
  src="https://iotools.cloud/embed/git-unified-diff-patch-generator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Generator Patch Unified Diff untuk Git — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Tempelkan ini di halaman Anda sendiri — gratis, tanpa kunci, cukup tautan balik.

Biaya per panggilan API/MCPMulai dari 5 kredit
Butuh kredit lebih?Lihat harga

Juga tersedia melalui

Panduan

Tempel dua versi sebuah file dan dapatkan unified diff patch yang siap diterapkan — dengan format persis --- a, +++ b, @@ -l,s +l,s @@ seperti yang dihasilkan oleh git diff dan diff -u. Alat ini berjalan sepenuhnya di browser Anda, sehingga apa pun yang Anda tempel tidak pernah meninggalkan perangkat Anda.

Apa itu unified diff?

Unified diff adalah format teks standar untuk menjelaskan perubahan antara dua file. Setiap patch diawali dengan dua baris header yang menyebutkan file asal (---) dan file yang sudah diubah (+++), diikuti satu atau lebih hunk. Hunk diawali dengan header seperti @@ -12,7 +12,8 @@ yang mencatat baris awal dan jumlah baris di kedua sisi, lalu mencantumkan baris konteks (diawali spasi), baris yang dihapus (-), dan baris yang ditambahkan (+). Format ini digunakan Git untuk menyimpan commit, dirender oleh alat code review, dan dikonsumsi oleh patch serta git apply.

Cara menggunakan

  1. Tempel teks asli di kotak Teks asli dan teks yang telah diubah di kotak Teks diubah.
  2. Opsional, atur Path asli dan Path diubah — keduanya menjadi baris header --- a.txt / +++ b.txt. Gunakan path repositori yang sebenarnya (misalnya a/src/index.js) jika Anda berencana menjalankan git apply pada hasilnya.
  3. Sesuaikan Baris konteks jika Anda memerlukan lebih banyak atau lebih sedikit baris yang tidak berubah di sekitar setiap perubahan. Nilai default 3 sama dengan diff -u; atur ke 0 untuk patch yang paling ringkas.
  4. Salin patch yang dihasilkan atau unduh sebagai file .patch.

Cara perbedaan dihitung

Alat ini menggunakan algoritma diff O(ND) Myers — pendekatan skrip edit terpendek yang juga menjadi dasar Git. Myers mencari kumpulan penyisipan dan penghapusan minimal yang mengubah teks asli menjadi teks yang diubah, lalu mengelompokkan suntingan tersebut menjadi hunk dengan jumlah konteks yang Anda pilih. Perubahan yang berdekatan dalam jarak dua kali jendela konteks digabung menjadi satu hunk, persis seperti diff -u, sehingga keluarannya kompatibel byte per byte dengan alat standar.

Menerapkan patch

Simpan keluaran sebagai changes.patch, lalu terapkan dengan git apply changes.patch atau patch -p0 < changes.patch. Jika Anda menggunakan awalan path a/… dan b/…, git apply -p1 akan memetakannya ke working tree Anda.

Apakah akurat untuk kode?

Ya. Diff tingkat baris bersifat deterministik dan cocok dengan GNU diff -u untuk masukan yang sama, termasuk header hunk dan jumlah baris. Alat ini membandingkan seluruh baris, sehingga satu karakter yang berubah ditampilkan sebagai satu baris dihapus dan satu baris ditambahkan — perilaku normal untuk patch berbasis baris.

Privasi

Semua pemrosesan terjadi di sisi klien, di browser Anda. Teks Anda tidak pernah diunggah, dicatat, atau dikirim ke server, sehingga alat ini aman untuk kode sumber proprietari dan berkas sensitif lainnya.

Pertanyaan yang sering diajukan

Berapa jumlah baris konteks yang sebaiknya saya gunakan? Tiga adalah default universal dan yang diharapkan para reviewer. Tingkatkan jika patch memerlukan lebih banyak kode di sekitarnya agar mudah dibaca; turunkan ke 0 untuk diff yang paling ringkas.

Bisakah saya membuat patch untuk file baru atau file yang dihapus? Bisa — kosongkan salah satu sisi. Teks asli yang kosong menghasilkan patch berisi semua penambahan; teks diubah yang kosong menghasilkan patch berisi semua penghapusan.

diffpatchgitunified-diffmyerscompare

Bagian dari alur kerja

Semua koleksi

Suka alat-alatnya? Hilangkan iklannya.

Satu kali pembayaran menghapus semua iklan dari akun Anda, selamanya. Tanpa langganan, tanpa pelacakan.