Gandrīz visām versiju vadības sistēmām ir sazarošanas iespējas. Bet Git ir pazīstams ar ātrām sazarošanas iespējām. Git filiāles ir vieglas. Tātad soda naudas par sazarošanu ir minimālas, un attīstības komandas tiek aicinātas pēc iespējas vairāk sazaroties un apvienoties. Bet, strādājot ar vairākām filiālēm, ir svarīgi spēt salīdzināt un salīdzināt atšķirības. Šajā apmācībā mēs veiksim darbplūsmu, lai uzzinātu, kā mēs varam salīdzināt dažādas filiāles un saistības.Vispirms izveidosim šādu situāciju:
C00 => C01 => C03 => C06 (galvenais)
\
C02 => C04 => C05 (attīstība)
Tika veiktas šādas darbības:
- C00: Pievienots sveiki_pasaule.py (galvenā filiāle)
- - Izveidoja attīstības nozari
- C01: Pārveidota sveika pasaule.py, lai pievienotu otro sveicienu (galvenā filiāle)
- C02: Pārveidota sveika pasaule.Lai pievienotu, izstrādes filiāle saka Sveiki (attīstības filiāle)
- C03: pievienota readme.txt (galvenā filiāle)
- C04: Pārveidota sveika pasaule.Lai pievienotu Attīstības filiāle, atkal saka Sveiki (attīstības filiāle)
- C05: pievienota informācija.txt (attīstības filiāle)
- C06: Pārveidota readme.txt, lai pievienotu otro rindu (galvenā filiāle)
Pēc visām saistībām filiālē “master” ir šādi faili:
Sveika pasaule.py
lasīt.txt
Un filiālē “izstrāde” ir šādi faili:
Sveika pasaule.py
info.txt
Salīdzinot divu zaru galvas
Lai salīdzinātu divu filiāļu galvas, varat izmantot zaru nosaukumu:
$ git diff master ... izstrādediff --git a / hello_world.py b / sveika pasaule.py
indekss e27f806… 3899ed3 100644
--- a / labdiena pasaule.py
+++ b / labdien_pasaule.py
@@ -2,7 +2,7 @@
def main ():
drukāt ("Pirmais sveiki!")
- drukāt ("Otrais sveiks!")
-
+ drukāt ("Attīstības filiāle saka Sveiki")
+ drukāt ("Attīstības filiāle saka Sveiki vēlreiz")
ja __nosaukums == "__main__":
galvenais ()
diff --git a / info.txt b / info.txt
jauns failu režīms 100644
indekss 0000000… 0ab52fd
--- / dev / null
+++ b / info.txt
@@ -0,0 +1 @@
+Jauna informācija
diff --git a / readme.txt b / readme.txt
izdzēstā faila režīms 100644
indekss e29c296… 0000000
--- a / readme.txt
+++ / dev / null
@@ -1,2 +0,0 @@
-1 Readme pirmā rindiņa.txt
-2 Readme otrā rinda.txt
Komanda diff rekursīvi skata izmaiņas. Tas ir palaists šādos diffs:
diff -git a / hello_world.py b / sveika pasaule.py
diff -git a / info.txt b / info.txt
diff -git a / readme.txt b / readme.txt
Šeit “a” apzīmē “galveno” filiāli un “b” apzīmē attīstības nozari. Pirmajam parametram vienmēr tiek piešķirts “a” un otrajam parametram “b”. / Dev / null nozīmē, ka filiālē nav faila.
Salīdzinot saistības
Mūsu piemērā filiālei “master” ir šādas saistības:
$ git statussUz filiāles kapteini
neko apņemties, darba katalogs tīrs
$ git log - tiešsaistē
caa0ddd C06: Pārveidota readme.txt, lai pievienotu otro rindu (galvenā filiāle)
efaba94 C03: pievienota readme.txt (galvenā filiāle)
ee60eac C01: Pārveidota sveika pasaule.py, lai pievienotu otro sveicienu (galvenā filiāle)
22b4bf9 C00: pievienots sveiki_pasauli.py (galvenā filiāle)
Izstrādes nozarei ir šādas saistības:
$ git statussPar filiāles attīstību
neko apņemties, darba katalogs tīrs
$ git log - tiešsaistē
df3a4ee C05: pievienota informācija.txt (attīstības filiāle)
0f0abb8 C04: modificēta sveika pasaule.Lai pievienotu Attīstības filiāle, atkal saka Sveiki (attīstības filiāle)
3f611a0 C02: modificēta sveika pasaule.Lai pievienotu, izstrādes filiāle saka Sveiki (attīstības filiāle)
22b4bf9 C00: pievienots sveiki_pasauli.py (galvenā filiāle)
Pieņemsim, ka mēs vēlamies salīdzināt sveiki_pasauli.py C01 un C02 apņemas. Varat izmantot jaucējus, lai salīdzinātu:
$ git diff ee60eac: labdien_pasaule.py 3f611a0: labdien_pasaule.pydiff --git a / ee60eac: labdien_pasaule.py b / 3f611a0: sveiki_pasaule.py
indekss e27f806… 72a178d 100644
--- a / ee60eac: labdien_pasaule.py
+++ b / 3f611a0: sveika pasaule.py
@@ -2,7 +2,7 @@
def main ():
drukāt ("Pirmais sveiki!")
- drukāt ("Otrais sveiks!")
+ drukāt ("Attīstības filiāle saka Sveiki")
ja __nosaukums == "__main__":
galvenais ()
Jūs varat izmantot to pašu principu, lai salīdzinātu arī saistības vienā filiālē.
Vizuālās sapludināšanas rīki
Aplūkot teksta salīdzinājumus var būt grūti. Ja Git difftool iestatījāt ar vizuālās sapludināšanas lietojumprogrammu, piemēram, DiffMerge vai BeyondCompare, jūs varēsit labāk redzēt atšķirības.
Turpmāka izpēte:
- Git Diff dokumentācija
- Git DiffTool dokumentācija
- DiffMerge iestatīšana ar DiffTool
- BeyondCompare iestatīšana ar DiffTool
Atsauces:
- Git apmācība: Diff un Merge Tools, YouTube
- http: // coding4streetcred.com / blog / post / configure-diffmerge-for-your-git-difftool
- http: // gitbaby.com / how-to-diff-one-file-to-a-patvaļīga-versija-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-Rieksts
- 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 / divu zaru salīdzināšana
- https: // veerasundar.com / blog / 2011/06 / git-tutorial-salīdzinot failus ar-diff /
- https: // www.motorollera programmatūra.com / features.php
- https: // www.motorollera programmatūra.lv / atbalsts.php?zz = kb_vcs