Posty z kategorii: Kursy

Git – start – inicjalizacja repozytorium, konfiguracja

Cześć!

Witaj w pierwszej części kursu gita. Dzisiaj skonfigurujemy sobie środowisko i zapoznamy się z podstawowymi poleceniami.

Z konsolą za pan brat

No dobra czas obeznać się troszkę w konsoli. Podstawowe polecenia w konsoli w Linuxie znajdziesz na przykład tutaj, natomiast na Windowsie tutaj. Warto się z nimi zaznajomić. Odpal teraz konsolę i poprzechodź pomiędzy folderami, pozmieniaj nazwy itd. Trening czyni mistrzem 🙂

Pora zacząć

git help

Odpalamy program Git Bash. Naszym oczom ukaże się taka oto piękna konsolka.

Pierwszym z poleceń jakie poznamy będzie git help. Służy do wyświetlania opisu polecenia. Wywołane bez dodatkowych parametrów wyświetla informację o podstawowych komendach gita.

Wywołanie w konsoli polecenia git help <nazwapolecenia>, np. git help commit spowoduje otworzenie informacji o poleceniu w przeglądarce. Dodatkowe informacje o git help znajdziesz oczywiście w dokumentacji.

git config

Kolejne polecenie, które poznasz, to git config. Służy do ustawiania opcji czy to danego repozytorium czy globalnych opcji gita, jako programu. Opcje globalne zapisywane są w katalogu domowym w pliku .gitconfig, zaś opcje dotyczące danego repozytorium w pliku .git/config. Na początku będzie nas interesowało praktycznie tylko git config –global user.name, gdzie ustawimy swoją nazwę oraz git config –global user.email, gdzie ustawimy swój email. Bez tego nie będziemy mogli zrobić tzw. commit. Poniżej zobaczysz rezultat wywołania poleceń.

Flaga –global znaczy tyle, że właśnie chcemy ustawić zmienną globalną. Może być tak, że dla danego repozytorium chcemy ustawić inny email, bo pracujemy przy innym projekcie. Wtedy pominęlibyśmy tę flagę i polecenie wyglądałoby następująco: git config user.email <tu_twój_email>.

Flaga –get pozwala sprawdzić, jaka jest wartość ustawionej zmiennej. Oczywiście o dodatkowych opcjach tego polecenia przeczytasz w dokumentacji.

git init

No i czas na najważniejsze w dzisiejszym kursie. W odpowiednim miejscu na dysku, tam gdzie będziemy mieć nasz kod trzeba zainicjalizować repozytorium. Zrobimy to wywołaniem polecenia git init.

Na powyższym zrzucie przechodzę na dysk F, gdzie chce utworzyć swoje repozytorium. Następnie poleceniem mkdir tworzę katalog o nazwie Git_kurs, gdzie będę trzymał swoje pliki. Poleceniem cd wchodzę do tego katalogu. Żeby sprawdzić, co się w nim aktualnie znajduje wywołuje polecenie listowania z opcjami a oraz l, czyli komenda ls -al. Dalej inicjalizuję repozytorium poleceniem git init. Polecenie to tworzy pliki repozytorium. Mieszczą się one w folderze .git (jeżeli jest on niewidoczny w eksploratorze Windows, to trzeba włączyć widoczność ukrytych plików). W folderze tym przechowywane są informacje związane ze śledzeniem plików. Raczej nigdy nie będziesz tutaj zaglądać, za to musisz zadbać, żeby ten folder tam był 😉 I oczywiście pozostałe opcje tego polecenia znajdziesz w dokumentacji.

git clone

Hmm, a czy da się pobrać istniejące repozytorium? Tak, oczywiście, że tak. Często jedna osoba, np. architekt, inicjalizuje repozytorium, a pozostali członkowie projektu je pobierają. Albo masz fajną bibliotekę, z której chciałbyś skorzystać, a znajduje się ona na serwerze, np. Github. Do tego służy polecenie git clone.

Wcześniej utworzyłem sobie na dysku F katalog Git i przeszedłem do niego. Będąc wewnątrz wywołałem polecenie git clone https://github.com/git/git, które sklonowało z podanego linku repozytorium programu Git 🙂 I znów, jeżeli jesteś głodny wiedzy i chcesz wiedzieć więcej, być mistrzem Gita, to odsyłam do dokumentacji 🙂

Podsumowanie

Dzisiaj zapoznałeś się z podstawowymi poleceniami. W tym kursie nie będziemy odkrywać Ameryki, dlatego pokazuję tylko podstawowe wywołania poleceń, tak, żebyś mógł zacząć robić cokolwiek 🙂 Dalej mega gorąco zachęcam do próby czytania dokumentacji. Według mnie jest ona całkiem przyjemna a dzięki temu potrenujesz naukę z dokumentacji oraz trochę przećwiczysz angielski, bez którego w IT trudno 🙂 Jak zawsze proszę o komentarze i wszelkie sugestie, co do mojej wesołej twórczości. Jeżeli coś jest niejasne, to zapraszam do pytania! 🙂

Git – pierwsze starcie – ogólna powiastka o systemie

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ć 🙂

Git! Po co, na co i dlaczego? Cz. 1

Cześć!

Powiedz mi ile razy robiłeś tak, że aby uniknąć straty wykonanej pracy robiłeś/robiłaś kopie plików gdzieś na pendrive lub co gorsza w folderze obok. Albo w ogóle nie zapisywałeś/aś postępów i przy wyłączeniu prądu, zawieszeniu komputera wszystko zdechło… Hmm a może pisałaś dokument czy program i fajnie byłoby wrócić do poprzedniej wersji? A może potrzebujesz coś tworzyć w grupie i korzystasz z dysków online, no ale jak to potem połączyć do kupy? Na to wszystko lekiem są systemy kontroli wersji.

Systemy kontroli wersji

Systemem kontroli wersji nazywamy oprogramowanie służące do śledzenia zmian w tworzonych plikach. Głównie mówi się o śledzeniu zmian w kodzie źródłowym programu tworzonego przez zespół deweloperów, ponieważ systemy te powstały właśnie głównie z ich potrzeb. Jednym z takich systemów, praktycznie wszędzie stosowanym, jest Git. Warto w tym miejscu dodać, że można korzystać z systemów kontroli wersji nie tylko do wersjonowania plików z kodem źródłowym, ale tak naprawdę każdych. Różnica jest tylko taka, że mogą nastąpić potem kłopoty przy mergowaniu, ale to wszystko sobie wyjaśnimy w kolejnych etapach kursu. Pewnie nawet nie wiesz, czym jest mergowanie, ale spokojnie, tego także się dowiesz.

Git

Wcześniej wspomniałem, że jednym z systemów kontroli wersji jest Git. Obsługa właśnie tego narzędzia będzie głównym tematem tego cyklu wpisów. Czym jest właściwie ten Git? Na stronie tego oprogramowania twórcy piszą o nim tak:

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

Dlaczego taki kurs?

Rozkład jazdy kursu

Nie będzie to nic odkrywczego. Weźmiemy sobie dokumentację i będziemy przerabiać po kolei działy. Na pewno nie uda się przetestować każdej opcji, ale postaramy się zrobić jak najwięcej! Też nie chodzi o to, by pokazać działanie każdej flagi z osobna, tylko by pokazać główne działanie danej komendy. Zastrzegam, że lista może ulegać modyfikacjom!

Lista wpisów:

  1. Git – pierwsze starcie – ogólna powiastka o systemie
  2. Git – start – inicjalizacja repozytorium, konfiguracja
  3. Git – zarządzanie plikami
  4. Git – praca nad różnymi funkcjonalnościami w jednym projekcie
  5. Git – udostępnianie na serwerze
  6. Git – łatamy dziury
  7. Git – email
  8. Git – zarządzanie repozytorium

Materiały dodatkowe

Jeżeli chcesz sam zacząć wcześniej, to tutaj polecam:

Podsumowanie

Mam nadzieję, że zachęci Cię to do śledzenia tego kursu i próbowania sił w używaniu repozytorium. Tym czasem do zobaczenia!