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:
- C00: Pridėta sveikas pasaulis.py (pagrindinis filialas)
- - Sukūrė plėtros šaką
- C01: modifikuotas sveikas pasaulis.py pridėti antrą labas (pagrindinis filialas)
- C02: modifikuotas sveikas pasaulis.Norėdami pridėti plėtros filialą, sako „Sveiki“
- C03: pridėta readme.txt (pagrindinis filialas)
- C04: modifikuotas sveikas pasaulis.Norėdami pridėti plėtros filialą, „Hello again“ (plėtros skyrius)
- C05: pridėta informacija.txt (plėtros šaka)
- C06: pakeista parengties sistema.txt pridėti antrą eilutę (pagrindinis filialas)
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ėtradiff --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ūsenaFilialo 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ūsenaApie š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.pydiff --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:
- „Git Diff“ dokumentacija
- „Git DiffTool“ dokumentacija
- „DiffMerge“ sąranka su „DiffTool“
- „BeyondCompare“ sąranka su „DiffTool“
Nuorodos:
- „Git“ mokymo programa: „Diff and Merge Tools“, „YouTube“
- http: // coding4streetcred.com / blog / post / configure-diffmerge-for-your-git-difftool
- http: // gitbaby.„com / how-to-diff-one-file-to-a-arbitrary-version-in-git“.HTML
- https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging
- https: // git-scm.com / book / id / v2 / Git-Branching-Branches-in-a-Riešutinėje
- https: // git-scm.com / docs / git-diff
- https: // git-scm.com / docs / git-difftool
- https: // šaltinis.com / diffmerge /
- https: // šaltinis.com / diffmerge / webhelp / sec__git__linux.HTML
- https: // stackoverflow.com / klausimų / 9834689 / dviejų šakų palyginimas
- https: // veerasundar.com / blog / 2011/06 / „git-tutorial“, lyginant failus su „diff“ /
- https: // www.motorolerių programinė įranga.com / features.php
- https: // www.motorolerių programinė įranga.com / palaikymas.php?zz = kb_vcs