Git

Git Bandingkan Dua Cabang

Git Bandingkan Dua Cabang

Hampir semua sistem kawalan versi mempunyai pilihan percabangan. Tetapi Git terkenal dengan kemampuan bercabang yang pantas. Cawangan git ringan. Jadi penalti prestasi untuk percabangan adalah minimum dan pasukan pembangunan digalakkan untuk mencabut dan bergabung sebanyak mungkin. Tetapi semasa anda bekerja dengan pelbagai cabang, penting untuk dapat membandingkan dan membezakan perbezaannya. Dalam tutorial ini, kita akan melalui aliran kerja untuk melihat bagaimana kita dapat membandingkan pelbagai cabang dan komitmen.Mari kita atasi keadaan berikut:

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

      \

       C02 => C04 => C05 (pengembangan)

Langkah-langkah berikut telah diambil:

Setelah semua melakukan, cawangan 'master' mempunyai fail berikut:

Hai dunia.py
baca saya.txt

Dan cawangan 'pengembangan' mempunyai fail berikut:

Hai dunia.py
maklumat.txt


Membandingkan kepala dua cabang

Anda boleh menggunakan nama cawangan untuk membandingkan kepala dua cabang:

$ git diff master… pembangunan
diff --git a / hello_world.py b / hello_world.py
indeks e27f806… 3899ed3 100644
--- a / hello_world.py
+++ b / hello_world.py
@@ -2,7 +2,7 @@
def utama ():
cetak ("Helo Pertama!")
- cetak ("Helo Kedua!")
-
+ cetak ("Cabang pembangunan mengatakan Hello")
+ cetak ("Cabang pembangunan bertanya lagi.")
jika __nama__ == "__main__":
utama ()
perbezaan --git a / info.txt b / maklumat.txt
mod fail baru 100644
indeks 0000000… 0ab52fd
--- / dev / null
+++ b / maklumat.txt
@@ -0,0 +1 @@
+Maklumat baru
diff --git a / readme.txt b / readme.txt
mod fail dihapuskan 100644
indeks e29c296… 0000000
--- a / readme.txt
+++ / dev / null
@@ -1,2 +0,0 @@
-1 baris pertama readme.txt
-2 Baris readme kedua.txt

Perintah diff melihat perubahan secara rekursif. Telah menjalankan perbezaan berikut:

diff -git a / hello_world.py b / hello_world.py
diff -git a / maklumat.txt b / maklumat.txt
diff -git a / readme.txt b / readme.txt

Di sini 'a' bermaksud cabang 'master' dan 'b' bermaksud cawangan pembangunan. 'A' selalu ditugaskan untuk parameter pertama dan 'b' ke parameter kedua.  The / dev / null bermaksud bahawa cawangan tidak mempunyai fail.


Membandingkan antara melakukan

Dalam contoh kami, cabang 'master' mempunyai komitmen berikut:

status $ git
Pada tuan cawangan
tiada apa yang perlu dilakukan, direktori kerja bersih
$ git log - talian
caa0ddd C06: Readme yang diubah suai.txt untuk menambah baris kedua (cawangan induk)
efaba94 C03: Readme ditambah.txt (cawangan induk)
ee60eac C01: hello_world yang diubah suai.py untuk menambah hello kedua (cabang induk)
22b4bf9 C00: Ditambah hello_world.py (cawangan induk)

Cawangan pembangunan mempunyai komitmen berikut:

status $ git
Pada pengembangan cawangan
tiada apa yang perlu dilakukan, direktori kerja bersih
$ git log - talian
df3a4ee C05: Maklumat tambahan.txt (cabang pembangunan)
0f0abb8 C04: hello_world yang diubah suai.py untuk menambah cabang Pembangunan berkata Hello lagi (cabang pengembangan)
3f611a0 C02: Hello_world yang diubah suai.py untuk menambah cabang Pembangunan berkata Hello (cawangan pembangunan)
22b4bf9 C00: Ditambah hello_world.py (cawangan induk)

Andaikan kita mahu membandingkan dunia hello_world.py untuk C01 dan C02 melakukan. Anda boleh menggunakan hash untuk membandingkan:

$ git diff ee60eac: hello_world.py 3f611a0: hello_world.py
diff --git a / ee60eac: hello_world.py b / 3f611a0: hello_world.py
indeks e27f806… 72a178d 100644
--- a / ee60eac: hello_world.py
+++ b / 3f611a0: hello_world.py
@@ -2,7 +2,7 @@
def utama ():
cetak ("Helo Pertama!")
- cetak ("Helo Kedua!")
+ cetak ("Cabang pembangunan mengatakan Hello")
jika __nama__ == "__main__":
utama ()

Anda juga boleh menggunakan prinsip yang sama untuk membandingkan komit dalam cawangan yang sama.


Alat Gabungan Visual

Melihat perbandingan berdasarkan teks boleh menjadi sukar. Sekiranya anda menyiapkan Git difftool dengan aplikasi penggabungan visual seperti DiffMerge atau BeyondCompare, anda akan dapat melihat perbezaan dengan lebih baik.

Sambung belajar:

Rujukan:

Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...
Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...
Kajian Tetikus Tanpa Wayar Microsoft Sculpt Touch
Saya baru-baru ini membaca mengenai Sentuhan Microsoft Sculpt tetikus tanpa wayar dan memutuskan untuk membelinya. Setelah menggunakannya sebentar, sa...