Obecnie większość projektów tworzenia oprogramowania to wspólne wysiłki. Projekty te mogą mieć nad nimi setki lub tysiące ludzi. Tak więc śledzenie zmian jest koniecznością do płynniejszej współpracy. GIT to open source rozproszony system kontroli wersji, który śledzi zasoby oprogramowania i pomaga uruchamiać bardziej wydajne procesy rozwojowe.
Co to jest system kontroli wersji?
Kiedy programiści pracują nad oprogramowaniem, muszą śledzić swoje zmiany. System kontroli wersji (VCS) pamięta wersje oprogramowania, które przechodzą przez różne etapy rozwoju. Praca z systemem kontroli wersji ma następujące korzyści:
Git - kontrola wersji rozproszonej
Początkowo większość systemów kontroli wersji została scentralizowana. W modelu scentralizowanym informacje o kontroli wersji, takie jak autorstwo, data, godzina i informacje o modyfikacji, zostaną utrzymane na scentralizowanym serwerze lub bazie danych. Problem z tym modelem polegał na tym, że zespoły programistów będą ograniczone przez moc lub ruch serwera centralnego. Kiedy serwer centralny spadł, cały system byłby w stanie.
W systemie kontroli wersji rozproszonej (DVCS) informacje o wersji są przechowywane z każdą kopią kodu. Umożliwia udostępnianie peer-to-peer. Nie ma potrzeby scentralizowanego repozytorium (nawet jeśli można go ustawić).
Krótka historia git
Git zaczął nieco kontrowersji jako akt zemsty. W 2002 roku społeczność Linux zaczęła korzystać z zastrzeżonego systemu sterowania wersją rozproszoną Bitkeeper za darmo. Ale w 2005 r. Związek między społecznością Linux a Bitkeeper załamał. Tak więc Linus Torvalds, twórca Linuksa, zaczął rozwijać git jako produkt typu open source. W tym roku wydano pierwszą wersję Git. Dzisiaj Git jest najpopularniejszym systemem kontroli wersji.
Plusy i wady git
Git to prosty i potężny system kontroli wersji rozproszonej z następującymi zaletami i wadami:
Wydajność: Większość zespołów programistycznych przenosi się do GIT w celu uzyskania korzyści. Zobowiązania, rozgałęzienie i połączenie jest szybsze w git niż scentralizowane systemy sterowania wersją, takie jak CVS, SVN lub Perforce. Ponadto rozproszony charakter oprogramowania ułatwia programistom dzielenie się pracą peer-to-peer. Ten proces jest szybszy niż uzyskanie kodu z centralnego serwera.
Bezpieczeństwo: Integralność kodu jest łatwiejsza do zweryfikowania na git. Używa bezpiecznego kryptograficznie SHA1. Skróty są unikalne dla każdej modyfikacji. Jeśli ktokolwiek zmieni modyfikację, skróty nie pasują. Ta właściwość GIT utrudnia każdemu zakracie zmian kodu.
Elastyczność: Git został zaprojektowany w celu dostosowania się do dowolnego przepływu pracy. Starsze systemy kontroli wersji są bardziej restrykcyjne. Ale Git daje Twojemu zespołowi więcej swobody. Możesz nawet utworzyć scentralizowany przepływ pracy lub zintegrować z innymi systemami kontroli wersji, aby Twoje starsze systemy działały.
Trudniej nauczyć się: Koncepcje git nie zawsze są intuicyjne. Inne systemy kontroli wersji przyjmują podejście oparte na interfejsie użytkownika. Społeczność git preferuje wiersz poleceń. Więc uczenie się użytkowników nietechnicznych jest trudniejsze.
Nostalgia do scentralizowanej kontroli wersji: Firmy czasami wahają się przed użyciem git, ponieważ nie ma scentralizowanej kontroli. Ale jeśli potrzebujesz scentralizowanego repozytorium, zawsze możesz zaprojektować przepływ pracy, aby je wdrożyć.
Wniosek
Git zyskał popularność ze względu na wartość, jaką dodaje do każdego zespołu programistów. Nawet jeśli pracujesz sam nad projektem, posiadanie niezawodnej historii może zaoszczędzić dużo czasu. Git to bezpłatne i pomocne narzędzie dla każdego projektu programowania oprogramowania.
Witryna Git
Podstawy git
Github - witryna hostingowa git
Bitbucket - strona hostingowa Git