
Mark Lucas
0
3945
86
Jako programiści stron internetowych często pracujemy nad lokalnymi witrynami programistycznymi, a następnie przesyłamy wszystko po zakończeniu. Jest to w porządku, gdy tylko ty i zmiany są niewielkie, ale gdy masz do czynienia z więcej niż jedną osobą pracującą nad czymś lub nad dużym projektem z wieloma skomplikowanymi komponentami, jest to po prostu niewykonalne. Wtedy przechodzimy do czegoś, co nazywa się kontrolą wersji.
Dzisiaj będę mówić o oprogramowaniu do kontroli wersji open source o nazwie Git. Pozwala to więcej niż jednej osobie na bezpieczną pracę nad tym samym projektem bez ingerencji między sobą, ale to także o wiele więcej.
Dlaczego warto korzystać z oprogramowania do kontroli wersji?
Przede wszystkim nazwa powinna ją zdradzić. Oprogramowanie do kontroli wersji pozwala na to “wersje” projektu, który pokazuje zmiany, które zostały wprowadzone w kodzie w miarę upływu czasu, i pozwala cofnąć się w razie potrzeby i cofnąć te zmiany. Już sama ta umiejętność - porównywanie dwóch wersji lub cofanie zmian sprawia, że jest ona nieoceniona podczas pracy przy większych projektach.
Prawdopodobnie w pewnym momencie sam to zrobiłeś, zapisując kopie projektu w różnych punktach, aby mieć kopię zapasową. W systemie kontroli wersji zapisywane byłyby tylko zmiany - plik łatki, który można zastosować w jednej wersji, aby był taki sam jak w następnej wersji. Wystarczy jeden programista.
Ale co, jeśli masz więcej niż jednego programistę pracującego nad projektem? Wtedy pojawia się pomysł scentralizowanego serwera kontroli wersji. Od dawna są one standardem, w którym wszystkie wersje są przechowywane na centralnym serwerze, a poszczególni programiści sprawdzają i przesyłają zmiany z powrotem na ten serwer. Jeśli kiedykolwiek spojrzałeś na historię edycji strony Wikipedii, dobrze wiesz, jak to działa w scenariuszu z prawdziwego świata:
Zaletą takiego systemu jest to, że wielu programistów może wprowadzać zmiany, a następnie każdą zmianę można przypisać do konkretnego programisty. Z drugiej strony fakt, że wszystko jest przechowywane w zdalnej bazie danych oznacza, że nie można wprowadzić żadnych zmian, gdy ten serwer przestanie działać; a jeśli centralna baza danych zostanie utracona, każdy klient ma tylko bieżącą wersję tego, nad czym pracował.
To zabiera nas do Git i innych tzw rozproszone systemy kontroli wersji. W tych systemach klienci nie tylko sprawdzają bieżącą wersję plików i pracują na nich - odzwierciedlają całą historię wersji. Każdy programista ma zawsze pełną kopię wszystkiego. Serwer centralny jest nadal używany, ale w najgorszym przypadku wszystko można przywrócić od dowolnego klienta, który ma najnowsze wersje.
Git działa specjalnie, biorąc “migawki” plików; jeśli pliki pozostają niezmienione w określonej wersji, po prostu łączy się z poprzednimi plikami - dzięki temu wszystko jest szybkie i oszczędne.
Warto również dowiedzieć się, że Git jest używany do zarządzania i rozwijania podstawowego jądra Linux - podstawowego bloku konstrukcyjnego, na którym zbudowane są wszystkie dystrybucje linuksowe.
Co to jest Github??
Chociaż możesz uruchomić własny serwer Git lokalnie, Github jest zarówno serwerem zdalnym, społecznością programistów, jak i graficznym interfejsem internetowym do zarządzania projektem Git. Korzystanie z niego jest bezpłatne dla maksymalnie 5 publicznych repozytoriów - to znaczy, gdy każdy może przeglądać lub rozwidlać Twój kod - z niskimi kosztami planów dla prywatnych projektów. Zdecydowanie sugeruję, aby założyć bezpłatne konto, aby móc zacząć bawić się własnymi projektami lub rozwodzić się nad kimś innym.
Widły i rozgałęzienia
Są to podstawowe koncepcje Git, więc poświęć chwilę, aby wyjaśnić różnicę.
Prawdopodobnie słyszałeś pracę “widelec” w przypadku dystrybucji Linuksa. Jeśli znasz aplikację Media Center Plex, wiesz, że pierwotnie był to rozwidlenie podobnego open source Xbox Media Center Aeon Nox 3.5: Piękny i konfigurowalny motyw dla XBMC Aeon Nox 3.5: Piękny i konfigurowalny motyw dla XBMC w górę swojego centrum multimedialnego dokładnie tak, jak chcesz. Aeon Nox 3.5 to najnowsza wersja prawdopodobnie najlepszego motywu dla XBMC i jest to rzadkie połączenie: piękne…. Oznacza to po prostu, że w pewnym momencie w przeszłości niektórzy programiści wzięli kod XBMC i postanowili pójść z nim po swojemu; który stał się Plex.
Jest to oczywiście całkowicie dozwolone, gdy projekt jest open source - możesz wziąć kod i zrobić z nim, co chcesz. Z Git, jeśli uważasz, że twoje zmiany są wystarczająco dobre, aby je przywrócić “mistrz” projekt, możesz zrobić “prośba o pociągnięcie” do autora, prosząc go o wycofanie zmian z powrotem do ich oryginalnego projektu. Dzięki temu możesz mieć setki tysięcy programistów pracujących nad projektem w dowolnym momencie, z których żaden nie musi być koniecznie zatwierdzony do dostępu do kodu - po prostu kopiują kod, wprowadzają zmiany i żądają przywrócenia do głównego. Oczywiście decyzja o zaakceptowaniu zmian zależy od właściciela oryginalnego projektu.
Rozgałęzienie jest czymś wewnętrznie wykonanym w projekcie przez autoryzowanych programistów. Pozwala łatwo oddzielić określone problemy lub funkcje i pracować nad nimi bez przerywania plików głównych. Po upewnieniu się, że Twój oddział zajął się tym problemem, scalasz go z powrotem w system główny. W dowolnym momencie może być tyle gałęzi, ile chcesz; nie przeszkadzają sobie nawzajem. Możesz także łączyć zmiany między gałęziami bez dotykania wzorca.
Oto świetny schemat przykładowego przepływu pracy autorstwa Vincenta Driessena:
Następnym razem przyjrzymy się, jak skonfigurować działający przykład Git i wprowadzić zmiany w kodzie w gałęziach. Kontrola wersji to ogromny temat. Przedstawiłem tu tylko najkrótsze omówienie, ale jako programista, który jest przyzwyczajony do wprowadzania zmian i cofania ich, jeśli nie działają, cała koncepcja oszałamia mnie - mam nadzieję, że robi to również.
Czy jesteś doświadczonym programistą z doświadczeniem w Git? Właśnie zaczynasz i myślisz, że chcesz spróbować? Dźwięk w komentarzach!