Takmer všetky systémy na správu verzií majú možnosti rozvetvenia. Ale Git je známy svojimi schopnosťami rýchleho vetvenia. Gitové vetvy sú ľahké. Výkonové tresty za vetvenie sú teda minimálne a vývojovým tímom sa odporúča, aby sa čo najviac rozvetvovali a spájali. Ale keď pracujete s viacerými pobočkami, je dôležité vedieť rozdiely porovnať a porovnať ich. V tomto tutoriáli si prejdeme pracovným tokom, aby sme zistili, ako môžeme porovnávať rôzne vetvy a potvrdenia.Najprv nastavíme nasledujúcu situáciu:
C00 => C01 => C03 => C06 (hlavný)
\
C02 => C04 => C05 (vývoj)
Boli prijaté tieto kroky:
- C00: Pridané hello_world.py (hlavná vetva)
- - Vytvorená vývojová vetva
- C01: Upravený hello_world.py pridať druhé ahoj (hlavná vetva)
- C02: Upravený hello_world.py pridať vývojovú vetvu hovorí Hello (vývojová vetva)
- C03: Pridané readme.txt (hlavná vetva)
- C04: Upravený hello_world.py pridať vývojovú vetvu hovorí opäť ahoj (vývojová vetva)
- C05: Pridané informácie.txt (vývojová vetva)
- C06: Upravený súbor readme.txt na pridanie druhého riadku (hlavná vetva)
Po všetkých spáchaniach má vetva „master“ nasledujúce súbory:
ahoj_svet.py
prečítaj ma.TXT
A vetva 'vývoj' má nasledujúce súbory:
ahoj_svet.py
Info.TXT
Porovnávanie hláv dvoch vetiev
Názov pobočiek môžete použiť na porovnanie hláv dvoch pobočiek:
$ git diff master ... vývojdiff --git a / hello_world.py b / ahoj_svet.py
index e27f806… 3899ed3 100644
--- a / hello_world.py
+++ b / ahoj_svet.py
@@ -2,7 +2,7 @@
def main ():
print („Najprv Dobrý deň!„)
- print ("Druhý deň Dobrý deň!„)
-
+ print („Vývojová vetva hovorí Ahoj“)
+ print („Vývojová vetva hovorí opäť Ahoj“)
ak __name__ == "__main__":
hlavný()
diff --git a / info.txt b / info.TXT
nový režim súborov 100644
index 0000000… 0ab52fd
--- / dev / null
+++ b / info.TXT
@@ -0,0 +1 @@
+Nové informácie
diff --git a / readme.txt b / readme.TXT
režim odstránených súborov 100644
index e29c296… 0000000
--- a / readme.TXT
+++ / dev / null
@@ -1,2 +0,0 @@
-1 Prvý riadok súboru readme.TXT
-2 Druhý riadok súboru readme.TXT
Príkaz diff rekurzívne sleduje zmeny. Má spustené nasledujúce rozdiely:
diff -git a / hello_world.py b / ahoj_svet.py
diff -git a / info.txt b / info.TXT
diff -git a / readme.txt b / readme.TXT
Tu 'a' znamená 'hlavnú' vetvu a 'b' znamená vývojovú vetvu. 'A' je vždy priradené k prvému parametru a 'b' k druhému parametru. / Dev / null znamená, že pobočka nemá súbor.
Porovnanie medzi záväzkami
V našom príklade má vetva „master“ tieto potvrdenia:
stav $ gitNa majstra pobočky
niet čo spáchať, pracovný adresár čistý
$ git log - online
caa0ddd C06: Upravený súbor readme.txt na pridanie druhého riadku (hlavná vetva)
efaba94 C03: Pridaný súbor readme.txt (hlavná vetva)
ee60eac C01: Upravený hello_world.py pridať druhé ahoj (hlavná vetva)
22b4bf9 C00: Pridané hello_world.py (hlavná vetva)
Vývojová vetva má tieto záväzky:
stav $ gitO rozvoji pobočiek
niet čo spáchať, pracovný adresár čistý
$ git log - online
df3a4ee C05: Doplnené informácie.txt (vývojová vetva)
0f0abb8 C04: Upravený hello_world.py pridať vývojovú vetvu hovorí opäť ahoj (vývojová vetva)
3f611a0 C02: Upravený hello_world.py pridať vývojovú vetvu hovorí Hello (vývojová vetva)
22b4bf9 C00: Pridané hello_world.py (hlavná vetva)
Predpokladajme, že chceme porovnať hello_world.py pre potvrdenie C01 a C02. Hodnoty hash môžete použiť na porovnanie:
$ git diff ee60eac: ahoj_svet.py 3f611a0: ahoj_svet.pydiff --git a / ee60eac: hello_world.py b / 3f611a0: ahoj_svet.py
index e27f806… 72a178d 100644
--- a / ee60eac: hello_world.py
+++ b / 3f611a0: ahoj_svet.py
@@ -2,7 +2,7 @@
def main ():
print („Najprv Dobrý deň!„)
- print ("Druhý deň Dobrý deň!„)
+ print („Vývojová vetva hovorí Ahoj“)
ak __name__ == "__main__":
hlavný()
Rovnaký princíp môžete použiť aj na porovnanie záväzkov v rámci tej istej pobočky.
Nástroje vizuálneho zlúčenia
Pohľad na textové porovnania môže byť zložitý. Ak nastavíte Git difftool s aplikáciou vizuálneho zlúčenia ako DiffMerge alebo BeyondCompare, budete môcť lepšie vidieť rozdiely.
Ďalšie štúdium:
- Dokumentácia Git Diff
- Dokumentácia Git DiffTool
- Nastavenie DiffMerge pomocou DiffTool
- BeyondCompare Setup s DiffTool
Referencie:
- Výukový program Git: Nástroje Diff and Merge, YouTube
- http: // coding4streetcred.com / blog / post / configure-diffmerge-for-your-git-difftool
- http: // gitbaby.com / how-to-diff-one-file-to-an-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-Nutshell
- https: // git-scm.com / docs / git-diff
- https: // git-scm.com / docs / git-difftool
- https: // sourcegear.com / diffmerge /
- https: // sourcegear.com / diffmerge / webhelp / sec__git__linux.html
- https: // stackoverflow.com / questions / 9834689 / porovnanie-dvoch-vetiev-v-gite
- https: // veerasundar.com / blog / 2011/06 / git-tutorial-porovnanie-suborov-s-rozdielom /
- https: // www.softvér pre skútre.com / funkcie.php
- https: // www.softvér pre skútre.sk / podpora.php?zz = kb_vcs