Reklama

oprogramowanie do kontroli wersjiJako 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.

instagram viewer

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:

oprogramowanie do kontroli wersji

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.

kontrola wersji

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.

kontrola wersji

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:

oprogramowanie do kontroli wersji

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.