Logowanie

Ukryj panel

Strona główna
MRT Net
Reklama
Logowanie
Nick :
Hasło :
 Zapisz
Rejestracja
Zgubiłeś hasło ?

Kamerki internetowe.

Panel sterowania
MRT Net
Aktualności
Artykuły
Archiwum
Czas na narty !
Czas na rower !
Zwiedzaj Kraków
Plikownia
Linki
Kalendarz
Galeria
Radio Online
Gry Online
Twój YouTube!
Ankiety
Newsletter
RSS
Księga gości
Wyszukiwarka
Kontakt

Reklama
MRT Net

40% zniżki karnet w PKL.

Partnerzy

Wyszukiwarka
Zaawansowane szukanie

Chmura Tag'ów
Microsoft Programy Samsung Wave Android Bada Aktualności Linki Nowości Informacje Fotografia T-Mobile Technologie Adobe Specyfikacje Galaxy Premiera Zapowiedzi Intel Nvidia Kraków Architektura Biotechnologia Chip System Nawigacja Galileo Gps Windows Linux Galeria Software Hardware Top 500 Superkomputery Serwer Wirtualizacja Flash Pamięci Internet Plikownia YouTube Gry Radio Amd Panasonic Nokia Nikon Sony OS Cloud Computing Red Hat Enterprise Toshiba LTE 4G Lockheed Martin Motorola IBM Internet Explorer 11 Grafen Wirtualna Mapa Krakowa Lamusownia Kraków DVB-T2 TeamViewer 13.0 Fifa 2018 Trasy rowerowe Pro Evolution Soccer 2018 Mozilla Firefox Pity 2017 Rakiety NSM Windows 8 Sony Xperia Tablet S LEXNET Samsung Galaxy S9 Dworzec Główny Kraków PKP Windows Phone Windows 10 Microsoft Lumia 950

Git - system kontroli wersji, czyli szara eminencja świata IT



W programowaniu system kontroli wersji jest niezbędnym narzędziem dla każdego dewelopera. Nie ma znaczenia czy mówimy o frontendzie lub backendzie. Więcej, pamiętajmy, że każdy kto obcuje z kodem jest wręcz skazany na posiadane umiejętności pracy z system do zarządzania nim. Zatem testerzy czy devopsi również na co dzień używają tego typu oprogramowania. Pracując w Javie, C# czy tworząc kod w JavaScripcie lub nawet będąc bazdanowcem – wszędzie używane jest jakieś narzędzie do zarządzania tworzonym kodem. Obok języka angielskiego, jest to drugi element świata IT, o którym wielu zapomina, a który jest niezbędnym składnikiem każdego projektu.

System kontroli wersji to w zasadzie narzędzie wspomagające pracę przy tworzeniu oprogramowania. Dodajmy jasno – niezbędne narzędzie! Pozwala ono na swobodne śledzenie zmian w kodzie z pełną historią zmian, z możliwością tworzenia rozgałęzień (branch) i ich scalania (merge). Uzyskujemy także zarządzanie dostępem do różnych branchy, a także możliwość pełnego odtworzenia projektu z wcześniejszych prac. W poniższym wpisie przedstawiony zostanie jeden z bardziej popularnych (a większość zapewne powie, że najbardziej popularny) systemów do kontroli wersji jakim jest Git.
Jak to z tym Gitem było…

Sam Git jest dość młody w tym segmencie rynku. Stworzony został w 2005 roku i jest przykładem na to, że potrzeba jest matką wynalazku. Wiąże się z nim „romantyczna” historia, związana bezpośrednio z Linuksem i pracami nad nim. Otóż w roku 2005 twórca BitKeeper, narzędzia do kontroli wersji, używanego przez osoby rozwijające Linuksa, obwieścił iż jego oprogramowanie nie będzie już w pełni darmowe. W tym momencie twórcy Linuksa, z Linusem Torvaldsem na czele, postanowili stworzyć własne oprogramowanie do zarządzania kontrolą wersji, które będzie posiadać zalety BitKeepera, a jednocześnie mieć całkowicie otwarty kod. W ten sposób powstał Git, który szybko zyskał na popularności. Ironią losu jest tutaj to, iż finalnie, w roku 2016, BitKeeper stał się otwartym oprogramowaniem, wielu twierdzi jednak, że o wiele lat za późno, aby móc stać się tak popularnym jak młodszy konkurent od Torvaldsa.

Git to zdecentralizowany system kontroli wersji. Zatem w przeciwieństwem do wielu starszych systemów, opartych na architekturze scentralizowanej, nie wymaga on połączenia z serwerem. Co za tym idzie, każdy z deweloperów może pracować lokalnie, bez ciągłego połączenia z zewnętrznym głównym serwerem. Oczywiście powstaje wiele rozszerzeń do Gita, które posiadają główny serwer z kodem, ale służy on wówczas do kontroli dostępu z wieloma ułatwieniami przy scalaniu kodu i jego inspekcji poprzez interfejs www. Na pewno wielu z was korzysta lub chociaż słyszało o GitHubie lub GitLabie, które to właśnie oferują tego typu usługi.

Git w stosunku do wielu starszych rozwiązań jest znacznie szybszy i świetnie przystosowany do pracy z plikami tekstowymi, na których de facto opiera się programowanie. Pozwala on także na swobodną pracę offline, a także szybkie i bezproblemowe scalanie kodu. Co ważne, kontrola wersji nie odbywa się poprzez pracę tylko na różnicowych danych, ale na zrzutach migawek. Zatem zapisując aktualne zmiany, zapisujemy stan całego projektu. W celu optymalizacji niezmodyfikowane pliki nie są zapisywane, ale posiadają referencje do wcześniejszej, identycznej wersji. Pozwala to na swobodą i szybką realizację rozgałęzień kodu (branchy).
Co daje nam Git?

Pracując z Gitem warto przedstawić podstawowe pojęcia, jakie są używane podczas pracy z tym oprogramowanym, a jakie już zostały nadmienione we wstępie:

- repozytorium – miejsce na zbiór z kodem, w większości przypadków znajduje się tutaj jeden większy projekt; repozytoriom może być ono lokalne, ale także zdalne; najczęściej dokonuje się synchronizacji repozytorium głównego (zdalnego) i lokalnego, jako iż repozytorium lokalne jest kopią repozytorium zdalnego

- branch – rozgałęzienie w kodzie w obrębie repozytorium, pozwala to na jednoczesną prace w kodzie wielu osobom, często branche robione są per element/funkcjonalność w tworzonym oprogramowaniu

- commit – zatwierdzenie i wysłanie zmian w kodzie do repozytorium lokalnego

- push – wysłanie commitów z lokalnego repozytorium do repozytorium zdalnego

- pull – pobranie zmian (commitów) z repozytorium zewnętrznego do lokalnego

- fetch – pobranie zmian (commitów) z repozytorium zewnętrznego do lokalnego, jednakże w przeciwieństwie do pull, nie nanosi zmian, a daje podgląd zmian jakie zostały naniesione przez innych na zdalnym repozytorium

- merge– łącznie kilku branchy, często niesie to za sobą rozwiązywanie wielu konfliktów, z racji wykonanych zmian w tym samym miejscu.

Praca z Gitem najczęściej sprowadza się do: sklonowania repozytorium zewnętrznego do jego lokalnego odpowiednika. Następnie przenosimy się na żądanego brancha lub tworzymy nowego z już istniejącego. Po naniesieniu zmian w kodzie tworzymy commita. Wówczas zaciągamy zmiany z zewnętrznego repozytorium. Oczywiście rozwiązujemy konflikty, jeśli takowe się pojawią. W kolejnym kroku wrzucamy własne zmiany lokalne na zewnętrzne repozytorium. Tak najczęściej wygląda praca z Gitem przy tworzeniu oprogramowania.
Git: terminal vs narzędzie graficzne

Git pozwala na wykonywanie powyższych poleceń bezpośrednio z terminalu, co ważne Git jest narzędziem multiplatformowym. Możemy używać go na Linuxie, Windowsie czy macOS. Dobrze jest znać polecenia Gita, chociażby te podstawowe. W większości przypadków przedstawionych powyżej schemat pracy z Gitem jest znacznie prostszy jeśli używamy nakładki graficznej na terminal Gita. Pozwala ona na wygodniejszą pracę w większych projektach. W znacznie prostszy i przyjemniejszy sposób nie tylko wrzucimy nasz kod do repozytorium, ale także przejrzymy zmiany, sprawdzimy historię, zrobimy merga czy przeniesiemy commity pomiędzy branchami. Oczywiście zapewne jest wiele osób, które nie wyobrażają sobie pracy z Gitem w aplikacji z GUI, ale kontrola wersji ma być narzędziem w pracy z którego będziemy mogli korzystać wygodnie. Więcej, ma ono być niemalże przezroczyste dla dewelopera, takim niezbędnikiem, który nie sprawa, że praca z kodem staje się męczarnią. Oczywiście większość zaawansowanych działań na repozytorium wymaga użycia terminala (co jest faktem), aczkolwiek zdarza się to rzadko i na co dzień narzędzie graficzne dla większość osób będą znacznie przyjemniejsze w pracy.

Jeśli chodzi o wybór narzędzia z Gui do pracy, to w tym przypadku wybór jest bardzo szeroki. Z darmowych narzędzi warto wymienić: Git Extensions, SourceTree czy TortoiseGit. Również wiele IDE, w których tworzony jest kod, posiada podstawową integrację z Gitem. Praktycznie każdy znajdzie coś dla siebie. Szeroką listę narzędzi znajdziemy na stronie Gita: https://git-scm.com/downloads/guis/ .
Git flow

Na koniec wprowadzenia do Gita zostawiłem pojęcie Git flow, które nie jest obce każdemu kto pracuje z Gitem, nawet na mniejszych projektach. Git flow określa sposób pracy z branchami. Pozwala to na spójną, równoległą i niekonfliktową pracę z podziałem na kilka głównych branchy.

Develop – pierwszym podstawowym branchem jest develop, czyli gałąź na którą wrzucane są nowe funkcjonalności, które już zostały przetestowane; jest to podstawowy branch, z którego powstają kolejne branche w przypadku, gdy tworzona jest kolejna funkcjonalność

Feauture – są to branche powstałe z developa, tworzone w celu powstania nowej funkcjonalności (często naprawa błędu to finalnie, tworzenie nowej funkcjonalności, ehh…), kod na tych gałęziach bywa w większość przypadków niestabilny; po zakończeniu prac nad nowymi elementami na branchu feature jest on mergowany do brancha develop

Master – branch będący odzwierciedleniem produkcji, określa on aktualny stan produkcji

Realease – branche powstałe z developa, są to gałęzie, które przygotowują kod (stabilizacja) do wdrożenia nowej wersji na produkcję, finalnie takie branche trafiają po wdrożeniu na developa i mastera

Hotfix – grupa branchy, które powstają z mastera i naprawiają najbardziej palące błędy na produkcji; po zakończeniu testów, branch trafia na produkcję (merge do mastera) i na developa.

Takie rozdzielenie branchy sprawia, że zarządzanie kodem, nowymi funkcjonalnościami, naprawą błędów i nowymi wersjami na produkcji jest znacznie prostsze i wydajniejsze. Pozwala to także, na lepsze zarządzanie zasobami ludzkimi.

Git – niezbędne narzędzie przy tworzeniu oprogramowania

Wszędzie tam, gdzie jest tworzony kod, tam pojawia się system kontroli wersji. Nie ma znaczenia w czym piszemy i gdzie. Zawsze nasza praca musi zostać dostarczona do repozytorium, które to pozwoli na wspólną pracę w zespole. Ba, nawet tworząc chałupniczy projekt w pojedynkę, system kontroli wersji pomoże nam w zapanowaniu nad kodem.

Git to obecnie jeden z popularniejszych narzędzi do zarządzania kodem. Jego znajomość jest równie ważna jak język programowania, w którym będziemy pisali oprogramowanie. Mimo, że jest to narzędzie działające w tle, to praca z nim jest szybka i przyjemna. Lata doświadczeń w innych systemach wersji sprawił, że Git jest obecnie wręcz synonimem kontroli wersji. Jest potrzebny w pracy programisty, na równi ze znajomością języka angielskiego. Praca na co dzień w narzędziu graficznym do Gita to dobry sposób na podstawową obsługę Gita dla większości zadań z jakimi spotykają się osoby pracujące nad projektem IT (a z takimi najczęściej mamy kontakt).

Git z potrzeby chwili stał się narzędziem, które stało się wiodącym graczem na rynku. Zostało stworzone od samych podstaw przez deweloperów dla deweloperów, co widać w pracy z nim na co dzień. Szybkość, łatwość pracy i duże możliwości sprawiają, że jest on niezbędnym elementem w pracy każdego dewelopera.



źródło: git


Jeśli chcesz otrzymywać wyczerpujące informacje z serwisu MRT Net, zaprenumeruj nasz Newsletter





Autor Komentarz
Brak komentarzy w bazie
Zegar
Aktualny czas w Kraków:

Pogoda

Aktualności
 · Promocje na majówkę: tańsze smartfony, raty 0 zł i spore zniżki
Napisane przez Piotr
( 09.05.2025 04:15 )

 · PKP Intercity zintegrowało bilety z warszawską komunikacją miejską
Napisane przez Piotr
( 08.05.2025 06:14 )

 · Warka z nowym pozycjonowaniem, identyfikacją i kampanią - "zrzucamy zbroję"
Napisane przez Piotr
( 07.05.2025 08:09 )

 · "Minghun" - poruszający film z Marcinem Dorocińskim od 2 maja na VOD
Napisane przez Piotr
( 06.05.2025 07:07 )

 · Netflix z mocnymi wynikami. Wall Street może odetchnąć z ulgą?
Napisane przez Piotr
( 05.05.2025 06:03 )

 · Majówka 2025
Napisane przez Piotr
( 02.05.2025 06:58 )


Ankiety
Czy w najbliższym czasie zamierzasz zainstalować Windows 11?
Czy Windows 11 okaże się tak samo dobry jak Windows 10?
 Tak
 Nie
 Zostaje przy obecnym systemie

 
Inne sondy

Subskrybuj RSS
[RSS]

Jeżeli chcesz na bieżąco śledzić najważniejsze wydarzenia, wykorzystaj możliwość kanałów informacyjnych RSS.
Jak subskrybować kanał RSS?


Galeria
Samsung Galaxy Ring

Artykuły
1 . Czym różni się NPU od GPU - wyjaśniamy kluczowe różnice.
(14.08.2024)
2 . Wielka dziura w odporności
(15.07.2024)
3 . Na uczelniach AI będzie śledziło plagiaty AI
(19.02.2024)
4 . Eksperci: kary za nieprzestrzeganie unijnych przepisów dot. AI mogą być wyższe niż za łamanie RODO.
(26.12.2023)
5 . SpaceX wyniesie na orbitę satelitę SatRev z perowskitami Saule Technologies
(07.11.2023)
6 . Aplikacja do słuchania obrazów z kosmosu.
(23.10.2023)
7 . Eksperci: warto uczyć się korzystania z narzędzi wykorzysujących sztuczną inteligencję
(18.09.2023)
8 . Czym jest transformacja cyfrowa? Niezbędne zakłócenie.
(15.08.2023)
9 . Prywatna misja na ISS wystartowała m.in. z polskim sprzętem do badania mózgu.
(23.05.2023)
10 . Polka na liście 100 Technologists to Watch
(07.04.2023)

Popularne pliki
1 . PITy 2020
(10.01.2021)
2 . PITy 2019
(12.02.2020)
3 . PITy 2018
(18.02.2019)
4 . PITy 2017
(15.02.2018)
5 . TeamViewer 13.0
(15.02.2018)
6 . Google Chrome 64
(15.02.2018)
7 . Mozilla Firefox 58.0.2
(15.02.2018)
8 . TeamViewer 12.0
(27.04.2017)
9 . PITy 2016
(07.02.2017)
10 . PITy 2015
(26.03.2016)


^ Wróć do góry ^
Powered by MRT Net 2004-2025.