Reklama
Jako programiści stron internetowych często pracujemy nad lokalnymi witrynami programistycznymi, a następnie przesyłamy wszystko po zakończeniu. To dobrze, gdy jesteś tylko ty, a zmiany są niewielkie, ale gdy masz do czynienia z więcej niż jednym osoba pracująca nad czymś lub nad dużym projektem z wieloma skomplikowanymi komponentami, to po prostu nie jest wykonalny. 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 mieć „wersje” projektu, które pokazują zmiany, które zostały wprowadzone w kodzie w miarę upływu czasu, i pozwalają 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 tylko zmiany zostałyby zapisane - 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? Właśnie 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 prawdziwym świecie:
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 w szczególności, wykonują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.
Może Cię również zainteresować fakt, że Git służy do zarządzania i rozwijania jądro jądra Linux - podstawowy element konstrukcyjny, na którym budowane są wszystkie dystrybucje linuksowe.
Co to jest Github?
Chociaż możesz uruchomić własny serwer Git lokalnie, Github to zarówno zdalny serwer, społeczność programistów, jak i graficzny interfejs internetowy 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 niskokosztowymi planami 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 pojęcia związane z korzystaniem z Git, więc poświęć chwilę, aby wyjaśnić różnicę.
Prawdopodobnie słyszałeś o pracy „rozwidlenia” w przypadku dystrybucji Linuksa. Jeśli znasz aplikację Media Center Plex, wiesz, że pierwotnie była to wersja podobnego oprogramowania typu open source Xbox Media Center Aeon Nox 3.5: Piękny i konfigurowalny motyw dla XBMCSkonfiguruj swoje centrum multimedialne 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 ... Czytaj więcej . 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. Dzięki Git, jeśli uważasz, że twoje zmiany są wystarczająco dobre, aby przywrócić je do projektu „głównego”, to ty może wysłać autorowi żądanie „ściągnięcia”, prosząc go o wycofanie zmian z powrotem do ich oryginału projekt. Dzięki temu możesz mieć setki tysięcy programistów pracujących nad projektem w dowolnym momencie, z których żaden nie musi w razie potrzeby należy uzyskać zgodę na dostęp do kodu - wystarczy skopiować kod, wprowadzić zmiany i poprosić o przywrócenie go do mistrz. 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 uszkodzenia plików głównych. Gdy upewnisz się, że Twój oddział zajął się 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 według Vincent Driessen:
Następnym razem przyjrzymy się, jak skonfigurować działający przykład Git i wprowadzić zmiany w kodach w gałęziach. Kontrola wersji to ogromny temat. Przedstawiłem tu tylko najkrótsze omówienie, ale jako programista, który przyzwyczaja się do wprowadzania zmian i cofania ich, jeśli nie działają, cała koncepcja oszałamia mnie - mam nadzieję, że robi to również i Ty.
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!
James ma licencjat z zakresu sztucznej inteligencji i jest certyfikowany przez CompTIA A + i Network +. Jest głównym programistą MakeUseOf i spędza wolny czas grając w paintball VR i gry planszowe. Buduje komputery od dziecka.