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:
- nagy vagy zavaró változás végrehajtására készülsz
- kb. néhány olyan változtatás végrehajtására, amelyek esetleg nem használatosak
- Kipróbálni akar valamit, amiben nem biztos, hogy működni fog
- 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-g9c116e9
azt jelenti, hogy a9c116e9
rendezett 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:)
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