Git Bandingkan Dua Cabang

Git Compare Two Branches



Hampir semua sistem kontrol versi memiliki opsi percabangan. Tetapi Git dikenal dengan kemampuan percabangannya yang cepat. Cabang Git ringan. Jadi hukuman kinerja untuk percabangan minimal dan tim pengembangan didorong untuk bercabang dan bergabung sebanyak mungkin. Tetapi ketika Anda bekerja dengan banyak cabang, penting untuk dapat membandingkan dan membedakan perbedaannya. Dalam tutorial ini, kita akan melalui alur kerja untuk melihat bagaimana kita dapat membandingkan berbagai cabang dan komit. Pertama-tama, siapkan situasi berikut:

C00 => C01 => C03 => C06 (master)









C02 => C04 => C05 (pengembangan)



Langkah-langkah berikut diambil:





  • C00: Menambahkan hello_world.py (cabang master)
  • — Membuat cabang pengembangan
  • C01: Hello_world.py yang dimodifikasi untuk menambahkan hello kedua (cabang master)
  • C02: Hello_world.py yang dimodifikasi untuk menambahkan cabang Pengembangan mengatakan Halo (cabang pengembangan)
  • C03: Menambahkan readme.txt (cabang master)
  • C04: Hello_world.py yang dimodifikasi untuk menambahkan cabang Pengembangan mengatakan Halo lagi (cabang pengembangan)
  • C05: Menambahkan info.txt (cabang pengembangan)
  • C06: Readme.txt yang dimodifikasi untuk menambahkan baris kedua (cabang master)

Setelah semua komit, cabang 'master' memiliki file-file berikut:

hello_world.py
readme.txt



Dan cabang 'pengembangan' memiliki file-file berikut:

hello_world.py
info.txt


Membandingkan kepala dua cabang

Anda dapat menggunakan nama cabang untuk membandingkan kepala dua cabang:

$git diffmaster..pengembangan

berbeda --Pergilahke/hello_world.py b/hello_world.py
indeks e27f806..3899ed3100644
---ke/hello_world.py
+++ b/hello_world.py
@@-2,7+2,7 @@

def main():
mencetak('Halo Pertama!')
- cetak('Halo Kedua!')
-
+ cetak('Cabang pengembangan menyapa')
+ cetak('Cabang pengembangan menyapa lagi')
jika__nama__ =='__utama__':
utama()
berbeda --Pergilahke/info.txt b/info.txt
barumengajukanmode100644
indeks 0000000..0ab52fd
--- /dev/batal
+++ b/info.txt
@@-0,0+1 @@
+Informasi baru
berbeda --Pergilahke/readme.txt b/readme.txt
dihapusmengajukanmode100644
indeks e29c296.000000000
---ke/readme.txt
+++/dev/batal
@@-1,2+0,0 @@
-1Baris pertama readme.txt
-2Baris kedua readme.txt

Perintah diff secara rekursif melihat perubahan. Ini telah menjalankan perbedaan berikut:

diff –git a/hello_world.py b/hello_world.py
diff –git a/info.txt b/info.txt
diff –git a/readme.txt b/readme.txt

Di sini 'a' adalah singkatan dari cabang 'master' dan 'b' adalah singkatan dari cabang pengembangan. 'a' selalu ditetapkan untuk parameter pertama dan 'b' untuk parameter kedua. /dev/null berarti cabang tersebut tidak memiliki file.


Membandingkan antar komit

Dalam contoh kami, cabang 'master' memiliki komit berikut:

$status git
Di kepala cabang
tidak ada yang perlu dilakukan, direktori kerja bersih

$git log --oneline
caa0ddd C06: Dimodifikasi readme.txt untuk menambahkan baris kedua(cabang utama)
efaba94 C03: Menambahkan readme.txt(cabang utama)
ee60eac C01: Hello_world.py yang dimodifikasi untuk menambahkan halo kedua(cabang utama)
22b4bf9 C00: Menambahkan hello_world.py(cabang utama)

Cabang pengembangan memiliki komitmen berikut:

$status git
Pada pengembangan cabang
tidak ada yang perlu dilakukan, direktori kerja bersih

$git log --oneline
df3a4ee C05: Menambahkan info.txt(cabang pengembangan)
0f0abb8 C04: Hello_world.py yang dimodifikasi untuk menambahkan cabang Pengembangan berkata Halo lagi(cabang pengembangan)
3f611a0 C02: Hello_world.py yang dimodifikasi untuk menambahkan cabang Pengembangan mengatakan Halo(cabang pengembangan)
22b4bf9 C00: Menambahkan hello_world.py(cabang utama)

Misalkan kita ingin membandingkan hello_world.py untuk komit C01 dan C02. Anda dapat menggunakan hash untuk membandingkan:

$git diffee60eac:hello_world.py 3f611a0:hello_world.py

berbeda --Pergilahke/ee60eac:hello_world.py b/3f611a0:hello_world.py
indeks e27f806..72a178d100644
---ke/ee60eac:hello_world.py
+++ b/3f611a0:hello_world.py
@@-2,7+2,7 @@

def main():
mencetak('Halo Pertama!')
- cetak('Halo Kedua!')
+ cetak('Cabang pengembangan menyapa')

jika__nama__ =='__utama__':
utama()

Anda dapat menggunakan prinsip yang sama untuk membandingkan komit dalam cabang yang sama juga.


Alat Penggabungan Visual

Melihat perbandingan berbasis teks bisa jadi sulit. Jika Anda mengatur Git difftool dengan aplikasi penggabungan visual seperti DiffMerge atau MelampauiBandingkan , Anda akan dapat melihat perbedaan dengan lebih baik.

Pelajaran lanjutan:

Referensi: