Téměř všechny systémy pro správu verzí mají možnosti větvení. Git je ale známý svými schopnostmi rychlého větvení. Gitové větve jsou lehké. Tresty výkonu za větvení jsou tedy minimální a vývojovým týmům se doporučuje, aby se větvily a sloučily co nejvíce. Ale když pracujete s více větvemi, je důležité umět rozdíly porovnat a porovnat. V tomto kurzu projdeme pracovním postupem, abychom zjistili, jak můžeme porovnávat různé větve a revize.Nejprve nastavíme následující situaci:
C00 => C01 => C03 => C06 (hlavní)
\
C02 => C04 => C05 (vývoj)
Byly provedeny následující kroky:
- C00: Přidáno hello_world.py (hlavní větev)
- - Vytvořeno vývojové odvětví
- C01: Modifikovaný hello_world.py přidat druhé ahoj (hlavní větev)
- C02: Modified hello_world.py přidat vývojovou větev říká Hello (vývojová větev)
- C03: Přidán soubor readme.txt (hlavní větev)
- C04: Upravený hello_world.py přidat vývojovou větev říká znovu ahoj (vývojová větev)
- C05: Přidané informace.txt (vývojová větev)
- C06: Modified readme.txt pro přidání druhého řádku (hlavní větev)
Po všech spáchání má větev „master“ následující soubory:
Ahoj světe.py
readme.txt
A větev 'development' má následující soubory:
Ahoj světe.py
informace.txt
Srovnání hlav dvou větví
Název větví můžete použít k porovnání hlav dvou větví:
$ git diff master… vývojdiff --git a / hello_world.py b / hello_world.py
index e27f806… 3899ed3 100644
--- a / hello_world.py
+++ b / hello_world.py
@@ -2,7 +2,7 @@
def main ():
print ("První Dobrý den!")
- print ("Druhý den!")
-
+ print ("Vývojová větev říká Hello")
+ print ("Vývojová větev říká znovu Hello")
pokud __name__ == "__main__":
hlavní()
diff --git a / info.txt b / informace.txt
nový režim souborů 100644
index 0000000… 0ab52fd
--- / dev / null
+++ b / informace.txt
@@ -0,0 +1 @@
+Nová informace
diff --git a / readme.txt b / soubor readme.txt
režim smazaných souborů 100644
index e29c296… 0000000
--- a / readme.txt
+++ / dev / null
@@ -1,2 +0,0 @@
-1 První řádek souboru readme.txt
-2 Druhý řádek souboru readme.txt
Příkaz diff rekurzivně sleduje změny. Spustil následující rozdíly:
diff -git a / hello_world.py b / hello_world.py
diff -git a / informace.txt b / informace.txt
diff -git a / readme.txt b / soubor readme.txt
Zde 'a' znamená 'hlavní' větev a 'b' znamená vývojovou větev. 'A' je vždy přiřazeno prvnímu parametru a 'b' druhému parametru. / Dev / null znamená, že větev soubor nemá.
Porovnání mezi závazky
V našem příkladu má větev „master“ následující revize:
stav $ gitNa pobočce
nic k spáchání, pracovní adresář čistý
$ git log - online
caa0ddd C06: Upravený soubor readme.txt pro přidání druhého řádku (hlavní větev)
efaba94 C03: Přidán soubor readme.txt (hlavní větev)
ee60eac C01: Upravený hello_world.py přidat druhé ahoj (hlavní větev)
22b4bf9 C00: Přidáno hello_world.py (hlavní větev)
Vývojová větev má následující závazky:
stav $ gitO rozvoji pobočky
nic k spáchání, pracovní adresář čistý
$ git log - online
df3a4ee C05: Přidané informace.txt (vývojová větev)
0f0abb8 C04: Upravený hello_world.py přidat vývojovou větev říká znovu ahoj (vývojová větev)
3f611a0 C02: Upravený hello_world.py přidat vývojovou větev říká Hello (vývojová větev)
22b4bf9 C00: Přidáno hello_world.py (hlavní větev)
Předpokládejme, že chceme porovnat hello_world.py pro závazky C01 a C02. Hodnoty hash můžete použít k porovnání:
$ git diff ee60eac: hello_world.py 3f611a0: hello_world.pydiff --git a / ee60eac: hello_world.py b / 3f611a0: hello_world.py
index e27f806… 72a178d 100644
--- a / ee60eac: hello_world.py
+++ b / 3f611a0: hello_world.py
@@ -2,7 +2,7 @@
def main ():
print ("První Dobrý den!")
- print ("Druhý den!")
+ print ("Vývojová větev říká Hello")
pokud __name__ == "__main__":
hlavní()
Stejný princip můžete použít také k porovnání závazků ve stejné větvi.
Nástroje pro vizuální slučování
Pohled na textová srovnání může být obtížný. Pokud nastavíte Git difftool pomocí aplikace pro vizuální slučování, jako je DiffMerge nebo BeyondCompare, budete moci lépe vidět rozdíly.
Další studie:
- Dokumentace Git Diff
- Dokumentace Git DiffTool
- Nastavení DiffMerge pomocí DiffTool
- BeyondCompare Setup s DiffTool
Reference:
- 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 / porovnávání-dvou-větví-v-git
- https: // veerasundar.com / blog / 2011/06 / git-tutorial-porovnávání-souborů-s-rozdílem /
- https: // www.software pro skútry.com / funkce.php
- https: // www.software pro skútry.com / podpora.php?zz = kb_vcs