Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Git az előzményeket alapvetően eltérő módon jeleníti meg, mint a központi verzióvezérlő rendszerek (CVCS), például a Team Foundation verziókövetése, a Perforce vagy a Subversion. A központosított rendszerek külön előzményt tárolnak minden fájlhoz egy adattárban. A Git az előzményeket a teljes adattár pillanatképeinek gráfjaként tárolja. Ezek a Gitben commitnek nevezett pillanatképek több szülővel is rendelkezhetnek, és egyenes vonal helyett gráf szerű előzményt hozhatnak létre. Ez a különbség a történelemben hihetetlenül fontos, és ez a fő oka annak, hogy a CVCS-t ismerő felhasználók zavarónak találják a Gitet.
A véglegesítési előzmények alapjai
Kezdje egy egyszerű előzmény példával: egy három lineáris véglegesítéssel rendelkező adattárral.
Az A véglegesítés a B véglegesítés szülője, a B véglegesítés pedig a C véglegesítés szülője. Ez az előzmény nagyon hasonlít a CVCS-hez. A C véglegesítésre mutató nyíl egy ág. Az ágak adott véglegesítésekre mutatnak, ezért az elágaztatás olyan egyszerű és egyszerű a Gitben.
A Gitben a CVCS-hez képest lényeges különbség, hogy a fejlesztő saját teljes másolattal rendelkezik az adattárról. A távoli adattárból származó legújabb véglegesítések lekérésével a helyi adattárat szinkronban kell tartaniuk a távoli tárházzal. Ehhez lehúzza a fő ágat a következő paranccsal:
git pull origin main
Ez egyesíti a távoli adattár fő ágának összes módosítását, amelyet a Git alapértelmezés szerint elnevez origin . Ez a pull művelet egy új commit-ot hozott, és a helyi tár fő ága ehhez a commit-hoz kerül.
Ágelőzmények ismertetése
Itt az ideje, hogy módosítsa a kódot. Gyakori, hogy több aktív ága van, amikor párhuzamosan dolgozik a különböző funkciókon. Ez éles ellentétben áll a CVCS-rel, ahol az új ágak nehézkesek és ritkán jönnek létre. Az első lépés egy új ágba való kivétel a következő paranccsal:
git checkout -b cool-new-feature
Ez egy billentyűparancs, amely két parancsot kombinál:
-
git branch cool-new-featureaz ág létrehozásához -
git checkout cool-new-featureaz ágban való munka megkezdéséhez
Két ág most ugyanarra a véglegesítésre mutat. Tegyük fel, hogy az cool-new-feature ágon van néhány változás két új commitben, E-ben és F-ben.
A lekötések az cool-new-feature ágról elérhetők, mivel ehhez az ághoz lettek lekötve.
Most, hogy a funkció elkészült, egyesíteni kell a fő ágba. Ehhez használja a következő parancsot:
git merge cool-new-feature main
Az előzmények gráfszerkezete egyesítéskor láthatóvá válik. A Git új véglegesítést hoz létre, amikor az ágat egy másik ágba egyesítik. Ez egy egyesítési véglegesítés. Az egyesítési véglegesítés nem tartalmaz módosításokat, mivel nem voltak ütközések. Ütközések esetén az egyesítési véglegesítés tartalmazza a feloldáshoz szükséges módosításokat.
Történelem a való világban
Íme egy példa a Git-előzményekre, amelyek jobban hasonlítanak a csapat aktív fejlesztésének kódjára.
Három személy egyesíti a saját ágaiból a commit-eket az main ágba nagyjából ugyanabban az időben.
Következő lépések
Tudjon meg többet a Git-előzmények kezeléséről a GitHub és Azure Repos-ban, vagy a Git-naplóelőzmények egyszerűsítéséről.