Git

Git Sammenlign to grener

Git Sammenlign to grener

Nesten alle versjonskontrollsystemer har forgreningsalternativer. Men Git er kjent for sine raske forgreningsegenskaper. Git grenene er lette. Så ytelsesstraffene for forgrening er minimale, og utviklingsteamene oppfordres til å forgrene seg og slå sammen så mye som mulig. Men når du jobber med flere grener, er det viktig å kunne sammenligne og kontrastere forskjellene. I denne opplæringen vil vi gå gjennom en arbeidsflyt for å se hvordan vi kan sammenligne ulike grener og forpliktelser.La oss først sette opp følgende situasjon:

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

      \

       C02 => C04 => C05 (utvikling)

Følgende trinn ble tatt:

Etter alle forpliktelsene har 'master' -grenen følgende filer:

Hei Verden.py
readme.tekst

Og utviklingsgrenen har følgende filer:

Hei Verden.py
info.tekst


Sammenligning av hodene til to grener

Du kan bruke navnet på grenene for å sammenligne hodene til to grener:

$ git diff master ... utvikling
diff --git a / hallo_verden.py b / hallo_verden.py
indeks e27f806… 3899ed3 100644
--- a / hallo_verden.py
+++ b / hallo_verden.py
@@ -2,7 +2,7 @@
def main ():
print ("Først Hei!")
- print ("Second Hello."!")
-
+ print ("Utviklingsgrenen sier Hei")
+ print ("Utviklingsgrenen sier Hei igjen")
hvis __name__ == "__main__":
hoved()
diff --git a / info.txt b / info.tekst
ny filmodus 100644
indeks 0000000… 0ab52fd
--- / dev / null
+++ b / info.tekst
@@ -0,0 +1 @@
+Ny informasjon
diff --git a / readme.txt b / readme.tekst
slettet filmodus 100644
indeks e29c296… 0000000
--- a / readme.tekst
+++ / dev / null
@@ -1,2 +0,0 @@
-1 Første linje av readme.tekst
-2 Andre linje med readme.tekst

Diff-kommandoen ser rekursivt på endringene. Den har kjørt følgende forskjeller:

diff -git a / hallo_verden.py b / hallo_verden.py
diff -git a / info.txt b / info.tekst
diff -git a / readme.txt b / readme.tekst

Her står 'a' for 'master' -grenen og 'b' for utviklingsgrenen. 'A' tildeles alltid den første parameteren og 'b' til den andre parameteren.  / Dev / null betyr at grenen ikke har filen.


Sammenligning mellom forpliktelser

I vårt eksempel har 'master' -grenen følgende forpliktelser:

$ git-status
På grenmester
ingenting å begå, arbeider katalogen ren
$ git log --online
caa0ddd C06: Modifisert readme.txt for å legge til andre linje (hovedgren)
efaba94 C03: Lagt til readme.txt (hovedfilial)
ee60eac C01: Modifisert hello_world.py for å legge til andre hei (master branch)
22b4bf9 C00: lagt til hello_world.py (master gren)

Utviklingsgrenen har følgende forpliktelser:

$ git-status
Om grenutvikling
ingenting å begå, arbeider katalogen ren
$ git log --online
df3a4ee C05: Lagt til info.txt (utviklingsgren)
0f0abb8 C04: Modifisert hello_world.py for å legge til Utviklingsgren sier Hei igjen (utviklingsgren)
3f611a0 C02: Modifisert hello_world.py for å legge til Utviklingsgren sier Hello (utviklingsgren)
22b4bf9 C00: lagt til hello_world.py (master gren)

Anta at vi vil sammenligne hello_world.py for C01 og C02 forplikter. Du kan bruke hasjene til å sammenligne:

$ git diff ee60eac: hallo_verden.py 3f611a0: hallo_verden.py
diff --git a / ee60eac: hallo_verden.py b / 3f611a0: hallo_verden.py
indeks e27f806… 72a178d 100644
--- a / ee60eac: hallo_verden.py
+++ b / 3f611a0: hallo_verden.py
@@ -2,7 +2,7 @@
def main ():
print ("Først Hei!")
- print ("Second Hello."!")
+ print ("Utviklingsgrenen sier Hei")
hvis __name__ == "__main__":
hoved()

Du kan bruke det samme prinsippet for å sammenligne forpliktelser innenfor samme gren også.


Visuelle fletteverktøy

Å se på tekstbaserte sammenligninger kan være vanskelig. Hvis du setter opp Git-verktøyet med et visuelt sammenslåingsprogram som DiffMerge eller BeyondCompare, vil du kunne se forskjeller bedre.

Videre studier:

Referanser:

Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...
Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...
Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...