Git Összehasonlítani két ágat

Git Compare Two Branches



Szinte minden verziókezelő rendszer rendelkezik elágazási lehetőségekkel. A Git azonban gyors elágazó képességeiről ismert. A git ágak könnyűek. Tehát az elágazásért járó teljesítménybüntetések minimálisak, és a fejlesztőcsapatokat arra ösztönzik, hogy lehetőleg ágazzanak és egyesüljenek. De ha több ággal dolgozik, fontos, hogy képes legyen összehasonlítani és szembeállítani a különbségeket. Ebben az oktatóanyagban egy munkafolyamaton megyünk keresztül, hogy lássuk, hogyan tudjuk összehasonlítani a különböző ágakat és kötelezettségvállalásokat. Először állítsuk be a következő helyzetet:

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









C02 => C04 => C05 (fejlesztés)



A következő lépéseket tették:





  • C00: Hozzáadva a hello_world.py (főág)
  • - Létrehozta a fejlesztési ágat
  • C01: A hello_world.py módosítva a második hello hozzáadásához (master ág)
  • C02: A hello_world.py módosítása a fejlesztési ág hozzáadásához Hello (fejlesztési ág)
  • C03: Hozzáadott readme.txt (fő ág)
  • C04: A hello_world.py módosítása a fejlesztési ág hozzáadásához Hello újra (fejlesztési ág)
  • C05: Hozzáadott info.txt (fejlesztési ág)
  • C06: A readme.txt fájl módosítva a második sor hozzáadásához (fő ág)

Az összes elkövetés után a „master” ág a következő fájlokkal rendelkezik:

hello_world.py
readme.txt



A „fejlesztés” ág pedig a következő fájlokkal rendelkezik:

hello_world.py
info.txt


Két ág fejének összehasonlítása

Az ágak nevével összehasonlíthatja két ág fejét:

$git diffmester..fejlesztés

diff --megynak nek/hello_world.py b/hello_world.py
index e27f806..3899ed3100644
---nak nek/hello_world.py
+++ b/hello_world.py
@@-2,7+2,7 @@

def fő():
nyomtatás(- Először is Hello!)
- nyomtatás(- Második Helló!)
-
+ nyomtatás('A fejlesztési ág üdvözli')
+ nyomtatás('A fejlesztési ág újra üdvözli')
ha__név__ =='__fő__':
fő-()
diff --megynak nek/info.txt b/info.txt
újfájltmód100644
index 0000000..0ab52fd
--- /dev/nulla
+++ b/info.txt
@@-0,0+1 @@
+Új információk
diff --megynak nek/readme.txt b/readme.txt
törölvefájltmód100644
index e29c296..0000000
---nak nek/readme.txt
+++/dev/nulla
@@-1,2+0,0 @@
-1A readme.txt első sora
-2A readme.txt második sora

A diff parancs rekurzívan nézi a változásokat. A következő különbségeket futtatta:

diff –git a/hello_world.py b/hello_world.py
diff –git a/info.txt b/info.txt
diff –git a/readme.txt b/readme.txt

Itt az „a” a „mester” és a „b” a fejlesztési ágat jelenti. Az „a” mindig az első paraméterhez, a „b” pedig a második paraméterhez van hozzárendelve. A /dev /null azt jelenti, hogy az ágnak nincs fájlja.


A kötelezettségvállalások összehasonlítása

Példánkban a „mester” ág a következő kötelezettségeket vállalja:

$git állapot
Ágmesterről
nincs mit elkötelezni, a könyvtár tiszta

$git napló --egy sor
caa0ddd C06: A readme.txt fájl módosítva a második sor hozzáadásához(mester ág)
efaba94 C03: Hozzáadva readme.txt(mester ág)
ee60eac C01: A hello_world.py módosítása a második hello hozzáadásához(mester ág)
22b4bf9 C00: Hozzáadva a hello_world.py(mester ág)

A fejlesztési ág a következő kötelezettségeket vállalja:

$git állapot
Az ágazat fejlesztéséről
nincs mit elkötelezni, a könyvtár tiszta

$git napló --egy sor
df3a4ee C05: Hozzáadott info.txt(fejlesztési ág)
0f0abb8 C04: A hello_world.py módosítása a fejlesztési ág hozzáadásához Hello újra(fejlesztési ág)
3f611a0 C02: A hello_world.py módosítása a fejlesztési ág hozzáadásához Hello(fejlesztési ág)
22b4bf9 C00: Hozzáadva a hello_world.py(mester ág)

Tegyük fel, hogy összehasonlítani akarjuk a hello_world.py -t a C01 és a C02 véglegesítéseknél. Az összehasonlításhoz használhatja a hash -eket:

$git diffee60eac: hello_world.py 3f611a0: hello_world.py

diff --megynak nek/ee60eac: hello_world.py b/3f611a0: hello_world.py
index e27f806..72a178d100644
---nak nek/ee60eac: hello_world.py
+++ b/3f611a0: hello_world.py
@@-2,7+2,7 @@

def fő():
nyomtatás(- Először is Hello!)
- nyomtatás(- Második Helló!)
+ nyomtatás('A fejlesztési ág üdvözli')

ha__név__ =='__fő__':
fő-()

Ugyanezt az elvet használhatja az ugyanazon ágazaton belüli kötelezettségvállalások összehasonlítására is.


Vizuális egyesítési eszközök

A szöveges összehasonlítások vizsgálata nehéz lehet. Ha beállítja a Git -et difftool olyan vizuális egyesítési alkalmazással, mint a DiffMerge vagy Összehasonlításon túl , jobban látni fogja a különbségeket.

A további vizsgálat:

Hivatkozások: