Git – pierwsze starcie – ogólna powiastka o systemie

Opublikowane przez Piotr Wachulec w dniu

Cześć!

Dzisiaj w kilku słowach zrobimy sobie mały wstęp do tego, czym jest git i powszechnie znany Github – zawsze się mówi, że to wizytówka programisty. Bez Gita i Githuba dzisiaj już się chyba nie żyć 😉

Git

Git jest to jeden z wielu systemów kontroli wersji. O tym, czym są systemy kontroli wersji pisałem w poprzednim (wstawić link) poście. Dzięki niemu możemy śledzić jak się zmienia kod w czasie, cofać się do poprzednich wersji. Przechowujemy całą historię zmian kodu wraz z informacją, kto dołożył swoje pięć groszy (jeżeli coś nie działa, wiadomo w którą stronę krzyczeć i rzucać mięsem – oczywiście nie do tego to jest :D). Ponadto dzięki możliwości rozgałęzienia możemy prowadzić równolegle prace nad różnymi funkcjonalnościami i potem złączyć wszystko w całość. A no i praca jest bezpieczna w sensie jeżeli jakaś zmiana spowoduje wywalanie się aplikacji na każdym kroku, to jesteśmy w stanie wrócić do ostatniej działającej wersji bez mała jednym kliknięciem.

Git jest systemem rozproszonym. Każdy z użytkowników pracujący z danym repozytorium zawsze ma całą historię zmian i wszystkie pliki, a nie tylko to nad czym pracuje.

Github

Github to miejsce w Internecie, w którym możemy przechowywać repozytorium Git. Jest powszechnie znany i łatwo dostępny przez stronę WWW. Dzięki temu Github jest miejscem skupiającym pracę deweloperów nad kodem. Ponadto dostarcza wiele przydatnych funkcjonalności: tworzenie dokumentacji do kodu, gdzie mogą być np. zawarte opisy konfiguracji środowiska itp., zgłaszanie i obsługę problemów, które wykryli użytkownicy oprogramowania, tworzenie gałęzi projektów czy zgłaszanie własnych poprawek. Ponadto oferuje szereg statystyk, które mogą być pomocne przy analizie wydajności zespołu, np. wykres rozwiązanych problemów czy wdrożonych funkcjonalności.

Co bedzie potrzebne?

Przede wszystkim Git i warto mieć pod ręką cheatsheet (dla tych co słyszą to pojęcie 1. raz, to taka ściągawka z poleceniami): z Git Tower lub z Github. Wydrukować i powiesić nad biurkiem.

Instalacja

Jeżeli na co dzień używasz Linuxa Ubuntu czy Fedory, czy jakiegokolwiek innego zainstalujesz gita z poziomu terminala poleceniem

sudo apt-get install git

lub

sudo yum install git

w zależności od systemu z jakiego korzystasz. Jest duża szansa, że git domyślnie został zainstalowany przy instalacji systemu operacyjnego.
Na Windows instalujesz plik z tej strony. Tutaj instalacja jest nieco bardziej skomplikowana i wytłumaczymy sobie te opcje.

Po pobraniu instalatora uruchamiamy go. Oczywiście na ostrzeżenie o wprowadzeniu zmian czy pliku o nieznanym pochodzeniu odpowiadamy, że chcemy.

Potem wyświetli nam się licencja, klikamy Next.

 

W następnym oknie wybieramy miejsce instalacji, możemy zostawić domyślne.

Kolejne okno mówi o instalacji dodatkowych komponentów.

Pierwsza opcja tradycyjnie czy chcemy mieć ikonę na pulpicie. Druga z nich odpowiada za integrację Gita z Windowsem, tzn. w jaki sposób chcemy komunikować się z programem. Domyślnie zaznaczone są obie opcje Git BashGit GUI, ale sam nigdy Git GUI nie otworzyłem. W kursie będziemy używać Git Bash. Następnie możemy zainstalować dodatek związany ze wsparciem dużych plików Git LFS, który podmienia duże pliki, np. audio, video na wskaźniki do tych plików na serwerze Gita. Kolejne dwie opcje odpowiadają za powiązanie plików konfiguracyjnych z domyślnym edytorem tekstowym, zaś plików skryptowych z powłoką Bash. Ostatnia opcja pozwala zmienić czcionkę we wszystkich konsolach na TrueType. A co to TrueType? A no odpowiedź znajdziesz np. tutaj.

W następnym oknie możesz wybrać nazwę w Menu Start. Zostawiamy domyślnie i klikamy Next.

Kolejne okno – modyfikacja zmiennej środowiskowej PATH. 

Po wybraniu pierwszej opcji Git będzie dostępny tylko z poziomu Git Bash. Na potrzeby tego kursu i normalnej działalności wystarczające. Po wybraniu drugiej Git będzie dostępny z Git Bash oraz z konsoli domyślnie wbudowanej w Windows. Ta opcja także może zostać wybrana. Po wybraniu trzeciej opcji podmieniane są niektóre narzędzia wbudowane w Windowsa. Raczej nie polecam tej opcji.

Dalej – obsługa protokołu szyfrującego przy przesyłaniu danych przez HTTPS.

Do wyboru są dwie opcje – używanie otwartej biblioteki OpenSSL (znów na potrzeby kursu wystarczy) lub wbudowanej biblioteki Windowsa, która ma kilka dodatkowych opcji, bardziej przydatnych, kiedy komputery są połączone w jakaś zaawansowaną sieć w jakimś korpo. Wybierz 1. opcję.

Następnie konwersja końca linii. Ale jak to? No tak to. W różnych systemach koniec linii jest różnie oznaczany, o czym możesz przeczytać na Wikipedii.

Dla nas będzie najlepsza opcja pierwsza: pobieraj z serwera z końcami linii w stylu Windows, zapisuj zmiany z końcami w stylu systemów rodziny Unix.

Kolejne okno pozwala na wybór emulatora konsoli. Mamy do wyboru domyślny zaimplementowany w Windows oraz MinTTY. Wybierz opcję pierwszą. Według mojej subiektywnej opinii lepiej się z niej korzysta 🙂

I tak zwane ekstra opcje – ostatni krok przed instalacją 🙂 Pierwsza przez przechowywanie w pamięci danych o systemie plików ma zapewnić wzrost wydajności. Chyba zbyt małe projekty robiłem, żeby to zauważyć 🙂 Druga bardzo ważna – Git Credential Manager. Bezpiecznie przechowuje nasze dane logowania. Koniecznie musi być zaznaczona. Ostatnia opcja – linki symboliczne (nie wiem jak się to tłumaczy, ale możesz cosik o tym poczytać tutaj). Nie będzie potrzebna w trakcie trwania kursu.

I instalujemy 🙂

Po instalacji zostaniemy zapytani, czy uruchomić powłokę bashową oraz czy chcemy zobaczyć, co zostało zmienione w najnowszej wersji programu. Obie odznaczamy 🙂

Podsumowanie

W kilku słowach postarałem się powiedzieć co to jest Git i Github. Potem przeszliśmy przez proces instalacji na Windowsie, który ma kilka ciekawych opcji. Oczywiście część z nich jest także dostępnych na Linuxie, tylko trzeba je ręcznie przestawić. Proszę zainstaluj sobie Gita i działamy dalej! 🙂 Jeżeli masz jakieś pytania, uwagi sugestie, to proszę skomentuj ten wpis 🙂

Dodatek – Gitlab

Jeszcze jest trzecie narzędzie, które ma Git w nazwie. Chodzi o Gitlaba. Jest to oprogramowanie, które pozwala oprócz przechowywania repozytorium, prowadzić cały projekt. Umożliwia tworzenie dokumentacji, planowanie zadań i przydzielanie ich użytkownikom, review (przegląd) kodu – bardzo dobra i stosowana praktyka, uruchamianie testów jednostkowych i wypychanie kodu na produkcję (Continuous Integration). Jest darmowy i otwartoźródłowy, zatem każdy może się nim pobawić 🙂