Git är ett styrsystem för öppen källkod som är känd för sin hastighet, stabilitet och distribuerade samarbetsmodell. Ursprungligen skapad 2006 för att hantera hela Linux-kärnan, har Git nu en omfattande funktionssats, ett aktivt utvecklingslag och flera fria värdgrupper.
Git designades från grunden, med liten uppmärksamhet på befintliga standarder för centraliserade versionssystem. Så, om du kommer från en SVN- eller CVS-bakgrund, försök att glömma allt du vet om versionskontroll innan du läser den här guiden.
Distribuerad mjukvaruutveckling skiljer sig i grunden från centraliserade versionsstyrningssystem. Istället för att lagra filinformation i ett enda centralförråd ger Git varje utvecklare en fullständig kopia av förvaret. För att underlätta samarbetet tillåter Git att var och en av dessa repositorier delar förändringar med något annat repository.
Att ha ett komplett förråd på din lokala maskin har en omfattande inverkan på utvecklingscykeln ...
Först innebär en lokal kopia av förvaret att nästan alla versionshanteringsåtgärder är mycket snabbare. I stället för att kommunicera med den centrala servern över en nätverksanslutning utförs Git-åtgärder på den lokala maskinen. Det betyder också att du kan arbeta offline utan att ändra ditt arbetsflöde.
Eftersom varje samarbetspartner i huvudsak har en säkerhetskopia av hela projektet är risken för en seriekrasch, ett skadat förråd eller någon annan typ av dataförlust mycket lägre än för centraliserade system som är beroende av en enda åtkomstpunkt.
Varje kopia av ett Git-arkiv, antingen lokalt eller fjärranslutet, behåller projektets hela historia. Att ha en fullständig, isolerad utvecklingsmiljö ger varje användare friheten att experimentera med nya tillägg innan de poleras upp i rena, publicerbara förpliktelser.
En fullständig historia för varje utvecklare betyder också a avvikande historia för varje utvecklare. Så fort du gör ett enda lokalt engagemang är du inte synkroniserad med alla andra på projektet. För att klara denna enorma mängd förgrening blev Git mycket bra för att slå samman divergerande utvecklingslinjer.
Denna lektion representerar ett kapitel från Git Succinctly, en gratis eBook från laget på Syncfusion.