Git

Git Palyginkite dvi šakas

Git Palyginkite dvi šakas

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

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

      \

       C02 => C04 => C05 (plėtra)

Buvo atlikti šie veiksmai:

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

Labas pasauli.py
skaityk mane.txt

„Kūrimo“ filialas turi šiuos failus:

Labas pasauli.py
info.txt


Lyginant dviejų šakų galvas

Norėdami palyginti dviejų šakų galvutes, galite naudoti filialų pavadinimą:

$ git diff master… plėtra
diff --git a / labas_pasaulis.py b / labas_pasaulis.py
indeksas e27f806… 3899ed3 100644
--- a / labas_pasaulis.py
+++ b / labas_pasaulis.py
@@ -2,7 +2,7 @@
def pagrindinis ():
spausdinti ("Pirmasis sveikas!")
- spausdinti ("Antrasis labas!")
-
+ spausdinti („Plėtros filialas sako„ Labas “)
+ spausdinti („Plėtros filialas vėl sako„ Labas “)
jei __pavadinimas = = "__main__":
pagrindinis ()
diff --git a / info.txt b / info.txt
naujas failo režimas 100644
indeksas 0000000… 0ab52fd
--- / dev / null
+++ b / informacija.txt
@@ -0,0 +1 @@
+Nauja informacija
diff --git a / readme.txt b / readme.txt
ištrinto failo režimas 100644
indeksas e29c296… 0000000
--- a / readme.txt
+++ / dev / null
@@ -1,2 +0,0 @@
-1 Pirmoji readme eilutė.txt
-2 Antroji readme eilutė.txt

Komanda „diff“ rekursyviai žiūri į pokyčius. Ji vykdė šiuos diff:

diff -git a / labas_pasaulis.py b / labas_pasaulis.py
diff -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ą. Pirmasis parametras visada priskiriamas „a“, o antrajam - „b“.  / Dev / null reiškia, kad filialas neturi failo.


Palyginti įsipareigojimus

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

$ git būsena
Filialo kapitonas
nieko neįsipareigoti, darbo katalogas švarus
$ git žurnalas - tiesioginis
caa0ddd C06: pakeista readme.txt pridėti antrą eilutę (pagrindinis filialas)
efaba94 C03: pridėta readme.txt (pagrindinis filialas)
ee60eac C01: modifikuotas sveikas pasaulis.py pridėti antrą labas (pagrindinis filialas)
22b4bf9 C00: Pridėta sveikas pasaulis.py (pagrindinis filialas)

Plėtros filialas įsipareigoja:

$ git būsena
Apie šakos plėtrą
nieko neįsipareigoti, darbo katalogas švarus
$ git žurnalas - tiesioginis
df3a4ee C05: pridėta informacija.txt (plėtros šaka)
0f0abb8 C04: modifikuotas sveikas pasaulis.Norėdami pridėti plėtros filialą, „Hello again“ (plėtros skyrius)
3f611a0 C02: modifikuotas sveikas pasaulis.norėdami pridėti plėtros filialą sako „Sveiki“ (plėtros skyrius)
22b4bf9 C00: Pridėta sveikas pasaulis.py (pagrindinis filialas)

Tarkime, kad norime palyginti „labas_pasaulis“.py už C01 ir C02 įsipareigoja. Galite naudoti maišas, kad palygintumėte:

$ git diff ee60eac: labas_pasaulis.py 3f611a0: labas_pasaulis.py
diff --git a / ee60eac: labas_pasaulis.py b / 3f611a0: labas_pasaulis.py
indeksas e27f806… 72a178d 100644
--- a / ee60eac: labas_pasaulis.py
+++ b / 3f611a0: labas pasaulis.py
@@ -2,7 +2,7 @@
def pagrindinis ():
spausdinti ("Pirmasis sveikas!")
- spausdinti ("Antrasis labas!")
+ spausdinti („Plėtros filialas sako„ Labas “)
jei __pavadinimas = = "__main__":
pagrindinis ()

Tuo pačiu principu galite palyginti ir įsipareigojimus toje pačioje šakoje.


Vizualinio sujungimo įrankiai

Žiūrėti į tekstinius palyginimus gali būti sunku. Jei „Git“ difuziją nustatysite naudodami vizualinio sujungimo programą, pvz., „DiffMerge“ ar „BeyondCompare“, galėsite geriau pamatyti skirtumus.

Tolesnis tyrimas:

Nuorodos:

5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...