Git Palyginkite dvi šakas

Git Compare Two Branches



Beveik visos versijų valdymo sistemos turi šakojimo galimybes. Tačiau „Git“ yra žinomas dėl savo greito išsišakojimo galimybių. Gito šakos yra lengvos. Taigi baudos už išsišakojimą yra minimalios, o kūrėjų komandos skatinamos kuo daugiau šakotis ir susijungti. Tačiau kai dirbate su keliomis šakomis, svarbu mokėti palyginti ir sulyginti skirtumus. Šioje pamokoje mes atliksime darbo eigą, kad pamatytume, kaip galime palyginti įvairias šakas ir įsipareigojimus. Pirmiausia nustatykime šią situaciją:

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









C02 => C04 => C05 (kūrimas)



Buvo imtasi šių veiksmų:





  • C00: pridėta hello_world.py (pagrindinė šaka)
  • - Sukūrė plėtros šaką
  • C01: modifikuotas hello_world.py, kad būtų pridėtas antrasis labas (pagrindinė šaka)
  • C02: modifikuotas hello_world.py, kad būtų pridėta plėtros šaka, sako „Sveiki“ (kūrimo šaka)
  • C03: pridėtas readme.txt (pagrindinis skyrius)
  • C04: modifikuotas „hello_world.py“, kad būtų pridėta plėtros šaka, sako „Sveiki dar kartą“ (kūrimo šaka)
  • C05: pridėtas info.txt (kūrimo skyrius)
  • C06: pakeistas „readme.txt“, kad būtų pridėta antra eilutė (pagrindinė šaka)

Po visų įsipareigojimų filialas „pagrindinis“ turi šiuos failus:

hello_world.py
readme.txt



„Plėtros“ filiale yra šie failai:

hello_world.py
info.txt


Lyginant dviejų šakų galvas

Šakų pavadinimais galite palyginti dviejų šakų vadovus:

$git difmeistras..vystymas

dif -eikį/hello_world.py b/hello_world.py
indeksas e27f806..3899ed3100644
---į/hello_world.py
+++ b/hello_world.py
@@-2,7+2,7 @@

def pagrindinis():
spausdinti('Pirma, sveiki!')
- spausdinti('Antras Labas!')
-
+ spausdinti(„Vystymosi skyrius sako„ Sveiki “)
+ spausdinti(„Vystymosi skyrius sako„ Sveiki dar kartą “)
jei__vardas__ =='__main__':
pagrindinis()
dif -eikį/info.txt b/info.txt
naujasfailąrežimu100644
indeksas 0000000..0ab52fd
--- /dev/nulis
+++ b/info.txt
@@-0,0+1 @@
+Nauja informacija
dif -eikį/readme.txt b/readme.txt
ištrintafailąrežimu100644
indeksas e29c296..0000000
---į/readme.txt
+++/dev/nulis
@@-1,2+0,0 @@
-1Pirmoji readme.txt eilutė
-2Antra readme.txt eilutė

Komanda diff rekursyviai žiūri į pakeitimus. Jis paleido šiuos skirtumus:

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

Čia „a“ reiškia „pagrindinę“ šaką, o „b“ - plėtros šaką. „A“ visada priskiriamas pirmajam parametrui, o „b“ - antrajam parametrui. /Dev /null reiškia, kad filialas neturi failo.


Palyginimas tarp įsipareigojimų

Mūsų pavyzdyje filialas „meistras“ įsipareigoja:

$git būsena
Ant šakos meistro
nieko įsipareigoti, darbo katalogas švarus

$git žurnalas --viena linija
caa0ddd C06: modifikuotas readme.txt, kad būtų pridėta antra eilutė(pagrindinė šaka)
efaba94 C03: pridėtas readme.txt(pagrindinė šaka)
ee60eac C01: modifikuotas hello_world.py, kad būtų pridėtas antras labas(pagrindinė šaka)
22b4bf9 C00: Pridėta hello_world.py(pagrindinė šaka)

Vystymosi skyrius įsipareigoja:

$git būsena
Apie šakos vystymąsi
nieko įsipareigoti, darbo katalogas švarus

$git žurnalas --viena linija
df3a4ee C05: pridėtas info.txt(plėtros šaka)
0f0abb8 C04: modifikuotas hello_world.py, kad būtų pridėta plėtros šaka, sako „Sveiki dar kartą“(plėtros šaka)
3f611a0 C02: modifikuotas hello_world.py, kad būtų pridėta plėtros šaka ir sako „Labas“(plėtros šaka)
22b4bf9 C00: Pridėta hello_world.py(pagrindinė šaka)

Tarkime, norime palyginti „hello_world.py“ C01 ir C02 įsipareigojimams. Norėdami palyginti, galite naudoti maišas:

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

dif -eikį/ee60eac: hello_world.py b/3f611a0: hello_world.py
indeksas e27f806..72a178d100644
---į/ee60eac: hello_world.py
+++ b/3f611a0: hello_world.py
@@-2,7+2,7 @@

def pagrindinis():
spausdinti('Pirma, sveiki!')
- spausdinti('Antras Labas!')
+ spausdinti(„Vystymosi skyrius sako„ Sveiki “)

jei__vardas__ =='__main__':
pagrindinis()

Tuo pačiu principu galite lyginti ir tos pačios šakos įsipareigojimus.


Vizualinio sujungimo įrankiai

Palyginti tekstinius palyginimus gali būti sunku. Jei nustatysite „Git“ diftoolis naudojant vizualinio sujungimo programą, pvz „DiffMerge“ arba Be palyginimo , galėsite geriau matyti skirtumus.

Tolesnis tyrimas:

Nuorodos: