Jelenleg a Git használatát tanulom a Pro Git a olvasásával >. Most ismerkedem meg az elágazásokkal és a címkékkel. A kérdésem az, hogy mikor kell egy elágazást és mikor a címkét használni?

Például mondjuk, hogy létrehozok egy elágazást a projekt 1.1 verziójához. Amikor befejezem és kiadom ezt a verziót, hagyjam az ágat, hogy megjelöljem a kiadási verziót? Vagy hozzá kell adnom egy címkét? Ha hozzáadok egy címkét, akkor törölnöm kell a verzió ágat (feltéve, hogy az beolvadt a masterbe vagy más ágba) )?

Válasz

Röviden: A legjobb gyakorlat az, hogy elágazik, gyakran egyesül és mindig szinkronban van .

Elég világos egyezmények vannak arról, hogy a kódot külön ágakban kell tartani a fő ágtól:

  1. nagy vagy zavaró változás végrehajtására készülsz
  2. kb. néhány olyan változtatás végrehajtására, amelyek esetleg nem használatosak
  3. Kipróbálni akar valamit, amiben nem biztos, hogy működni fog
  4. Ha azt mondják, hogy ágazj ki, akkor másoknak esetleg valami tennivalójuk van a mesterben.

Az általános szabály az elágazás után van, szinkronban kell tartanod a mesterrel ág. Mert végül vissza kell egyesítenie a mesterré. Annak érdekében, hogy elkerülje a konfliktusok óriási bonyolult rendetlenségét a visszaolvadáskor, gyakran kell vállalnia, gyakran összeolvadnia.

Követendő bevált gyakorlatok

Vincent Driessen sikeres Git elágazási modellje jó javaslatokat tartalmaz. Ha ez az elágazási modell vonzóvá teszi Önt, fontolja meg a folyamatbővítmény git-jét . Mások megjegyzést fűztek a folyamathoz .

Címkézési gyakorlatok

Mint már tudjátok, a Git olyan elkötelezett azonosítókat ad meg, mint például 1.0 -2-g1ab3183, de ezek nem tagek! A címkézés git címkével történik, és a git címke használatával létrehozott címkék képezik az alapját a git leírása által létrehozott elkötelező azonosítóknak. Más szavakkal: a Git-ben nem “” jelöljük meg az elágazásokat. Ön elkötelezettségeket címkéz. Helyes azt mondani, hogy a címke csak egy elkötelezettség jegyzetelt mutatója.

Nézzünk meg egy gyakorlati példát, amely ezt bizonyította,

 /-- [v1.0] v ---.---.---.---S---.---A <-- master \ \-.---B <-- test 

Legyen “s” az “S” elkötelezettség a “v1.0” címke által mutatott elkötelezettség. Ez az elkötelezettség mind a fiók “master”, mind az ág “teszt”. Ha az ” git leírást futtatja ” az elkötelezettség tetején ” A “(” master “ág tetején) valami olyasmit kapna, mint v1.0-2-g9c116e9. Ha a ” git futtatja a “div” = “d56fb79954”>

elemet a “B” elnevezés (más néven “teszt” ág) tetején, akkor valami hasonlót kapna: div id = “0871ba9170”> , ez a helyzet az alapértelmezett git-description konfigurációval. Vegye figyelembe, hogy ez az eredmény kissé eltér. A

v1.0-2-g9c116e9azt jelenti, hogy a9c116e9rendezett SHA-1 azonosítóval rendelkező SHA-1 azonosítóval vagyunk elkötelezve, 2 elkövetés av1.0. Nincs tagv1.0-2!

Ha azt szeretné, hogy a címkéje csak a “master” ágon jelenjen meg, létrehozhat új megbízást (pl. Csak az alapértelmezett / tartalék frissítése) verzióinformáció a GIT-VERSION-FILE fájlban) a “teszt” ág elágazási pontja után. Ha a “teszt” ágon címkézést követ el pl. “v1.0.3” ez csak a “tesztből” látható.

Hivatkozások

Sok-sok hasznos blogot és bejegyzést találtam, amelyekből tanulhatok. Azok azonban, amelyek Szakmailag illusztráltak ritkák. Ezért szeretnék ajánlani egy bejegyzést – A sikeres Git elágazási modell , írta @nvie. Kölcsönvettem az illusztrációját:)

írja ide a kép leírását

Megjegyzések

  • 1.0-2-g1ab3183 egy olyan azonosító, amelyet a git leír, a git-ből elérhető információk alapján állított össze, de egy git-azonosítónak hívni egy kicsit túl sok. A Git az SHA hash-szal azonosítható; a tagek és az ágak olyan emberi konstrukciók, amelyeket a git segítőkészen nyomon követ. amikor úgy gondolja, hogy valamelyik ember egyszer egy kényelmes könyvjelzőt akar találni az elköteleződéshez.
  • a git univerzumban a sokdimenziósság csodálatos illusztrációja. gyönyörű. köszönöm
  • érdemes megjegyezve, hogy sok projektre nincs szükség egyesekre ábrán látható sávok közül. Néhány projektnek csak fejleszteni és megjeleníteni kell a ‘ nevet. Ez gyakran igaz azokra a webalkalmazásokra, amelyek tetszés szerint telepíthetők.
  • Még a git flow szerzője sem ajánlja több projekttípushoz, például webfejlesztéshez. Sokan úgy gondolják, hogy ez sokkal összetettebb, mint amire a projektek túlnyomó többségének szüksége van, ami problémát okoz a kivitelezésben és könnyen téved.A spektrum másik végén néhány haladó gyakorlatot támogató csoport a ‘ törzsalapú fejlesztést ‘ használja, amely szinte soha nem használ ágakat, és olyan sikeres projekteket hajtson végre. Ha valami közbenső dolog van, fontolja meg a ” anti-gitflow ‘

Válasz

Elágazást használunk, ha egyszerre 2 különböző verziója van a tárnak. A címke az idő egy pontjának megjelölésére szolgál a tárban.

Címkét kell hozzáadnia a kiadott verzió megjelöléséhez. Ha ezután hibajavításokat kell végrehajtania az adott kiadásnál, akkor létre kell hoznia egy elágazást a címkénél.

Csak azokat az ágakat szeretné törölni, amelyek visszaolvadtak a HEAD-be [vagy más ágba].

Megjegyzések

  • ja … és feltételezem, hogy azt akarja mondani, hogy az ág egy másik ágba, például a masterbe van beolvadva. A HEAD minden alkalommal mozog, amikor fizetést végzek, igaz?
  • A HEAD általában egy ágra mutat (hacsak nem ‘ van leválasztott HEAD módban), tehát a HEAD az ág, amelyre mutat

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük