Generator Patch Unified Diff untuk Git
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
Masukkan kedua teks untuk melihat perbedaannya.
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_HERETempelkan 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/MCP | Mulai 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
- Tempel teks asli di kotak Teks asli dan teks yang telah diubah di kotak Teks diubah.
- Opsional, atur Path asli dan Path diubah — keduanya menjadi baris header
--- a.txt/+++ b.txt. Gunakan path repositori yang sebenarnya (misalnyaa/src/index.js) jika Anda berencana menjalankangit applypada hasilnya. - 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. - 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.