System Kontroli Wersji
8 godz. 23 min · Git · Full-stack i Programowanie
Mateusz KuleszaSenior Software Developer, Konsultant, TrenerInne systemy wersjonowania wymagają konfiguracji specjalnych serwerów - a z GIT wystarczy do tego twój komputer. GIT pozwoli Ci zapisywać kolejne wersje twojej pracy lub eksperymentować z różnymi zmianami. Jeśli chcesz tworzyć kopie zapasowe - w kursie zobaczysz jak tworzyć klony twojego projektu oraz jak wysyłać i pobierać aktualne zmiany pomiędzy klonami.Pierwsza sekcja pozwoli Ci zyskać pewność w samodzielnej pracy z GITem nim podejmiesz się pracy w zespole. Dowiesz się jak przygotować zestaw zmian, ignorować pliki tymczasowe, jak tworzyć migawki z opisami zmian, a następnie przeglądać i porównywać zmiany dokonane nawet miesiące temu. W kolejnej części kursu dowiesz się jak wycofywać zmiany, przywracać wcześniejsze wersje i edytować historię zmian. Zobaczysz, że w GIT “nic nie ginie”. Pokażę Ci jak możesz odzyskać pozornie utracone zmiany oraz jak naprawić historię zmian łącząc, dzieląc, a nawet zmieniając kolejność dokonanych wcześniej zmian.
Jesteś w trakcie pracy nad ważnym projektem, i nagle musisz oderwać się od pracy, by wykonać jedną, szybką poprawkę? W GIT możesz błyskawicznie przełączyć się na inną wersje projektu, lub po prostu “odłożyć na później” pliki nad którymi pracujesz i wrócić do nich kiedy tylko tego potrzebujesz. W tej części kursu zobaczysz jak pracować na gałęziach, dodawać etykiety oraz przełączać różne wersje plików. Dowiesz się jak porównywać oraz eksperymentować z plikami bez ryzyka utraty danych. Co najważniejsze - nauczysz się łączyć i dzielić wiele różnych wersji twojej pracy. Zobaczysz, jak praca na gałęziach nie tylko zwiększy Twoją swobodę i elastyczność w codziennej pracy, ale również jak gałęzie pozwalają wielu osobom na równoległą pracę na tych samych plikach bez martwienia się o utratę danych lub niespójne wersje.
W kursie dowiesz się nie tylko jak zapamiętywać zmiany, ale także jak je opisywać i oznaczać, tak, by nawet miesiące później móc łatwo odnaleźć odpowiednią wersję pliku, lub by dowiedzieć się kiedy, kto i dlaczego zmieniał dany plik. Zobaczysz jak dobre praktyki w opisywaniu zmian wspomagają pracę grupową. Dowiesz się jak pobrać lub wysłać zestaw zmian na serwer oraz jak połączyć zmiany swoje, lub zmiany otrzymane od współpracownika. Dodatkowo, zobaczysz jak bezpiecznie rozwiązać problem konfllktujących zmian w plikach lub jak przenieść zmiany z wersji do wersji. W kursie dowiesz się także jak w bardzo prosty sposób korzystać z pozornie najtrudniejszej funkcji GITa, jaką jest polecenie “rebase”. Zobaczysz jak usprawni się Twoja praca, gdy będziesz mógł w jednym kroku zbudować historię zmian. Jeśli źle zapisałeś zmiany, nie podoba Ci się historia zmian, lub po prostu chciałbyś łatwo uniknąć konfliktów - git rebase będzie Twoim nowym ulubionym narzędziem.
…zmieniło ten sam plik, trzeba jakoś te zmiany połączyć. Zobaczysz jak GIT pozwala wysłać zestaw zmian na serwer, pobrać zmiany innych osób i automatycznie dołączyć te zmiany w odpowiednich miejscach. Co jednak jeśli dwie osoby zmienią tę samą linię w pliku? W kursie dowiesz się nie tylko jakie są różne sposoby i strategie łączenia zmian, ale także jak dzięki historii będziesz wiedział dlaczego zmiana w pliku została wprowadzona. Dzięki narzędziu rebase będziesz mógł zaaplikować wszystkie zmiany w odpowiedniej kolejności i w odpowiednim miejscu.
W kursie poznasz także usługę GitHub. GitHub to nie tylko usługa udostępniająca repozytoria dla GIT - umożliwia również tzw. społecznościowe podejście do tworzenia… I to nie tylko kodu. Zobaczysz, że dzięki GitHub praca nad kodem aplikacji czy nową książką może odbywać się zespołowo. Pokażemy Ci jak publikować swoje zmiany oraz jak zgłaszać je innym do przejrzenia i połączenia z ich wersją. Poznasz także sposoby planowania pracy, przydzielania zadań i zarządzania postępem ich wykonania - wszystko na twoim koncie na portalu GitHub. Oprócz poleceń i funkcji GIT w tym kursie pokażemy Ci również, na prostych, praktycznych przykładach, typowe techniki i praktyki pracy z GIT. Podczas kursu symulujemy zespół budujący prostą stronę internetową. Co ważne, nie musisz znać HTML by skorzystać z tej części kursu! Zobaczysz jak wygląda praca z perspektywy jednej osoby, co zrobić gdy musisz przerwać pracę i przełączyć się na inne zadanie oraz jak przygotować Twoją pracę do podzielenia się nią z zespołem. Pokażemy kilka przykładów organizacji pracy. Zobaczysz prace z małym, centralnym repozytorium, a także modele pracy rozproszonej, z której korzystają duże projekty typu open-source. GIT to branżowy standard, który obowiązuje praktycznie we wszystkich firmach zajmujących się tworzeniem aplikacji lub stron internetowych. Sprawia to, że wiedza, którą zdobędziesz po przerobieniu tego kursu, bezpośrednio przełoży się na efektywność Twojej pracy oraz projekty, które tworzysz.
Kurs przygotowany został z myślą o wszystkich, którzy chcą nauczyć się najbardziej popularnego i elastycznego systemu kontroli wersji i wykorzystać go do efektywnej pracy w zespole, jak i na potrzeby indywidualnych projektów. Jest również przeznaczony dla każdego, kto pracuje z kodem źródłowym i chciałby nie tylko tego, by jego zmiany były bezpieczne, ale by jednocześnie mieć swobodę pracy na kilku równoległych wersjach kodu oraz móc swobodnie eksperymentować nie bojąc się o utratę danych. Jeśli chciałbyś dowiedzieć się jak sprawnie korzystać z Githuba oraz zrozumieć, czemu ten system jest tak chętnie stosowany przez programistów na całym świecie - to najlepsza metoda!
Witaj w tej lekcji pokażę ci jak ściągnąć, zainstalować i skonfigurować wszystkie narzędzia Git które
będą potrzebne podczas tego kursu. Tutaj w Google wpisze po prostu git i interesuje nas strona git-scm.com
To jest oficjalna strona z którą możemy ściągnąć GIT'a
Tutaj polecam zapoznać się z sekcją dokumentacja.
Tam także jest informacja na temat GIT Book i Pro GIT. Jest to książka dostępna za darmo.
A jeśli będziesz chciał jeszcze więcej dowiedzieć się o Git'ie polecam tą książkę która krok po kroku przeprowadzi Cię także przez wszystkie
polecenia, wszystkie informacje.
My jednak wróćmy do strony głównej.
I tutaj w zakładce downloads możemy pobrać najnowszą wersję Git'a
Akurat korzystam z systemu operacyjnego Windows więc pobiorę wersję dla Windows.
Jeśli korzystasz z innego systemu operacyjnego kliknij odpowiednią zakładkę.
Będzie tam dokładnie instrukcja jak możesz zainstalować to w swoim systemie operacyjnym. Następnie konfiguracja będzie wyglądała
już bardzo podobnie.
Tak więc tutaj nie musisz się martwić.
Ja pobiorę tutaj wersję dla Windows.
Tutaj się ta wersja ściąga.
Jest to plik zajmujący około trzydziestu kilku MB pod Windowsem.
Jest to instalator który po prostu przeprowadzi nas krok po kroku przez instalację i konfigurację pod Windows.
Gdy się ściągnęło po prostu klikamy plik exe. Uruchamiam go ktoś zapyta mnie o pozwolenie na instalację
zgadzam się uruchomić tutaj taki instalator ja go przeniosę tylko na drugi ekran żebyśmy go widzieli.
Tutaj jest akceptacja licencji GNU akceptujemy licencję i tutaj pytanie co chcemy zainstalować możemy
tutaj zdecydować się na instalację ikonki na pulpicie.
Tutaj ważne jest żeby był git bash.
Zainstalowany bo z tego właśnie będziemy korzystać tutaj obsługa dużych plików i tutaj pliki kropka git i kropka sh
Będą dowiązane do naszych zainstalowanych tutaj narzędzi.
Ja przejdę dalej.
Tutaj mamy kilka opcji jeśli chodzi o uruchamianie terminala razem z gitem instaluje się tzw. git bash.
Jest to taki terminal który pozwoli nam wykonywać różne polecenia gita ale nie tylko.
Zawiera on też część poleceń Linuxowych które ułatwią nam poruszanie się po katalogach tworzenia plików
katalogów przeglądanie plików będziemy w ciągu tego kursu korzystać głównie z git basha.
Jeśli chciałbyś żeby git był dostępny w całym twoim systemie żebyś mógł korzystać z terminala Windows z cmd
kropka exe lub z dowolnego terminala możesz wybrać tą opcję jednak tutaj nie będą dostępne te polecenia
linuksowe jeśli będziesz chciał się poruszać po katalogach będziesz musiał wykonać odpowiednie polecenia Linuksa.
Oczywiście w kursie przerabiamy wszystko korzystając z git basha.
Ja wykorzystuję tutaj ostatnią opcję czyli wykorzystaj gita z narzędziami unixowymi linuxowymi instalowanymi
w Windowsie aczkolwiek Tobie nie polecam tej opcji polecam pierwszą jeśli wiesz co robisz dlatego
że tutaj zastąpi to pewne polecenia Windowsa.
Jeśli nie chcesz mieć problemów z innymi programami w Windowsie.
Jeśli nie wiesz o co tutaj chodzi zaznacz pierwszą opcję i kontynuuj.
Z pierwszą opcją tutaj zostawiamy open ssh.
Jeśli korzystasz z Plinka lub też innego systemu do łączenia z ssh możesz go skonfigurować ponownie jeśli
nie wiesz tutaj wykorzystamy wbudowane ssh czyli protokół do komunikacji z serwerem który jest dostarczany
razem z gitem tutaj korzystamy także z biblioteki ssh która jest dostarczana razem z gitem.
Jeśli w firmie waszej macie specjalne certyfikaty macie w inny sposób zarządzane dostępem.
Należy skontaktować z administratorem i on podpowie którą opcję użyć czy używać tej drugiej opcji do kursu
używamy opcji pierwszej czyli open ssh library jest tutaj ważna informacja git powstał pod system Linux pod system
UNIX.
Gdzie końcówki linii w plikach mają po prostu inny symbol inaczej są zakończone i żeby nie było problemów
mamy taką fajną możliwość żeby git automatycznie tłumaczył te końcówki.
Czyli jeśli wysyłamy pliki windowsowe do np. przykład serwera one są konwertowane na format Unix dzięki
czemu każdy w dowolnym systemie operacyjnym może pobrać pliki na pewno będą wyglądały dobrze.
I vice versa jeśli pobieramy jakieś pliki tutaj git zamieni nam końcówki na windowsowe żeby nam się wygodnie pracowało
żebyśmy mogli w dowolnym edytorze pod Windows takie pliki otwierać więc polecam pierwszą opcję chyba że ponownie
wiesz co robisz.
Chyba że masz specjalnie skonfigurowany edytor to możesz rozważyć pozostałe opcje ja zostanę przy opcji
pierwszej i tutaj ponownie wybieram sobie terminal ja wybiorę ten dostępny z git bashem żeby on się uruchamiał
w razie gdyby git chciał mnie o coś zapytać tutaj uruchomię także file system cacheing dzięki czemu ten git będzie
troszkę szybciej pracował tu git credential manager nie jest konieczny on pozwoli logować się bez certyfikatów
czyli po prostu wpisując nazwę użytkownika i hasło łączyć się z serwerem będziesz mógł zapamiętać te
nazwy użytkownika i hasła w swoim tutaj menedżerze poświadczeń w Windows dzięki czemu nie będziesz musiał nazwy użytkownika
i hasła wpisywać za każdym razem w kolejnych lekcjach pokażę ci tą opcję ale także pokażę ci jeszcze
fajniejszą wygodniejszą opcję pracy z certyfikatem.
I tutaj enable symbolic link jeśli twój projekt zawiera jakieś dowiązania symboliczne możesz rozważyć tą opcję
tutaj w kursie nie będziemy takich projektów budować będziemy korzystać z plików windowsowych
tak więc nie będziemy mieli do wiązań symbolicznych więc tę opcję tutaj pominę.
I to wszystko praktycznie jak widzisz przeklikałem przez wszystkie opcje na.
Tak tak tak do przodu i instaluje czyli wybrałem wszystkie domyślne opcje tutaj włączam instalację ona
chwilkę potrwa.
Instalację się ukończyła na pulpicie lub w menu start możesz znaleźć teraz takie narzędzie jak Git bash.
Kliknij start wpisz git bash powinien być tutaj z taką ikonką.
Program ja go od razu uruchomię lunch git bash uruchomił się ten nasz terminal w którym mogli wykonywać polecenia gita.
Takie okienko bin bash się pojawiło.
Tutaj jest nazwa komputera i mogę napisać sobie różne polecenia będę mógł wykorzystać polecenia linuxowe
np. takie jak LS ale mogę także wykorzystać właśnie polecenia gita.
I mam tutaj wersję 2 14 u ciebie może być troszeczkę nowsza wersja jeśli jest to wersja zaczynająca się
od dwójki to nie ma problemu powinno być kompatybilne z całym naszym kursem ok czyli teraz w kolejnych
lekcjach będziemy korzystali już tylko z właśnie tego narzędzia git bash i tutaj nim przejdziemy dalej
zajmiemy się konfiguracją naszego gita polecenie git config.
Mogę przeglądać wszystkie opcje konfiguracyjne GIT'a ale także dodawać usuwać i modyfikować istniejące
opcje.
Jeśli wykonam polecenie config w ten sposób znajdę tutaj listę wszystkich możliwości i parametrów jeśli wybiorę
np. git config i wybiorę tutaj parametr list to wylistuje czyli wyświetli mi wszystkie opcje.
I takie opcje mogą być opcjami globalnymi lub lokalnymi.
W tym momencie jestem tu w moim katalogu domowym czyli w dowolnym właściwie katalogu mogę wykonać polecenie
git config list i dostanę opcję globalne dla całego Twojego systemu dla całej konfiguracji gita.
To są opcje domyślne które były tak ustawione po instalacji poleceniem git config add mogę dodać
nowe opcje.
Jeśli wykonam takie polecenie w istniejącym repozytorium ustawie tę opcję tylko dla dlatego repozytorium.
Każde inne repozytorium czyli każdy nasz inny projekt może posiadać inne różniące się opcje jeśli jakiejś opcji
nie podam w
repozytorium Git będzie poszukiwał tej opcji w globalnych ustawieniach czyli dopiszę tutaj flagę global.
To pozwoli mu ustawiać także dodać ustawienia do tych globalnych podstawowych ustawień dla całego systemu
i wtedy będą one wykorzystywane w każdym repozytorium.
Chyba że w którymś repozytorium podasz opcję taką bez parametru global to ta opcja w repozytorium
nadpisze lub przysłoni tą opcję globalną chciałbym żeby dla wszystkich naszych repozytoriów
ustawić użytkownika autora naszych zmian.
Dlatego że jak w późniejszych lekcjach będziemy pracować w kilku wersjach będziesz chciał współpracować
z innymi osobami git będzie wymagał aby każda twoja zmiana była podpisana czyli nim zaczniesz pracę z gitem pamiętaj
żeby globalnie lub lokalnie dodać dwie opcje user
kropka name i tu podaje swoje imię i nazwisko
ok git config tutaj.
Drugą opcją będzie user e-mail.
I tutaj podaje także w ten sposób e-mail.
Powiedzmy
jakiś tymczasowy adres e-mail który utworzyłem na potrzeby tego kursu.
Tutaj polecam tobie taki adres e-mail wybrać który będziesz mógł później zarejestrować w git hubie.
Czyli twój główny adres email lub adres który korzystasz do projektów żeby na tym koncie właśnie móc utworzyć
konto w reklamiegit hubie i później te wszystkie zmiany wysłać sobie właśnie na to swoje konto.
Jeśli są dwie opcje konfiguracje i teraz wykonam polecenie git config znowu z opcją gist.
Tu zobaczysz username Mateusz Kulesza pojawił się tu Enter niepotrzebnie czy jeszcze raz.
Dodając tutaj dodam tę opcję dwa razy.
Jeśli chciałbym zmodyfikować którąś opcję lub usunąć zobaczmy git config to mam tutaj takie flagi unset rename remove
i mógłby zmienić nazwę lub zmodyfikować replace prościej będzie jak usunę wszystkie.
I dodam jeszcze raz czyli pomyliłem się git config mogę to poprawić.
Global unset username
wiedzisz pokazuje że ma kilka więc unset all.
Sprawdźmy jeszcze raz git config i config list i mamy tylko e-mail więc dodam jeszcze raz tutaj.
Tym razem poprawnie.
Add username Mateusz Kulesza sprawdźmy czyli w ten sposób jak widzisz możesz dodawać usuwać modyfikować opcje.
I to jest opcja.
Jak widziałeś.
Globalna jeśli wykonuje polecenie git config z opcją global zmieny zapisywane są w pliku utworzonym
w moim katalogu użytkownika.
Czy będzie to C.
Użytkownicy lub i Users nazwa twojego użytkownika.
I tam powstanie plik.
Kropka.
Git config oczywiście na innych systemach operacyjnych będzie to odpowiednio Twój system twój katalog
użytkownika czyli zobaczymy sobie.
Będzie to cat takie polecenie mogę wykonać w git bash.
Pod Windowsem nie są one dostępne chcę podejrzeć zawartość pliku.
Tu będzie skrót do mojego katalogu.
I tu powinien być plik git config.
Czyli w moim katalogu użytkownika plik git config.
Wygląda w ten sposób czyli globalnie dla całego mojego użytkownika ustawiłem opcję user email taką jak tu i opcję
username taką jak tu w każdym projekcie gdziekolwiek uruchomię git config gdzie utworzę jakiś commit
to jakieś zmiany zapisze.
Będzie ona podpisana jako stworzona przez tego właśnie użytkownika w kolejnych lekcjach tego kursu będziemy
pracować praktycznie wyłącznie w wierszu poleceń.
Bedziemy jakieś pliki modyfikować więc możesz twój ulubiony edytor wybrać będziemy także wprowadzać pewne zmiany
w przeglądarce np. na portalu git hub.
Niemniej większość zmian będę pokazywał w terminalu i oczywiście istnieje wiele różnych wizualnych graficznych
narzędzi do gita aczkolwiek każde z nich pozwala Tobie wykonać tylko część możliwości.
Z opcji jakie posiada git jeśli chcesz mieć pełen dostęp do wszystkich funkcji wszystkich możliwości
gita to wykonuje się je najlepiej z terminala.
Ja także polecam Tobie do nauki wykorzystać terminal dlatego że nawet jeśli kiedyś później będziesz
pracował już wizualnym narzędziem lub z gitem zintegrowanym z twoim ulubionym edytorem to i tak będziesz pamiętał
wszystkie możliwe opcje polecenia które znajdują się właśnie w gicie tym terminalowym.
I będzie tobie bardzo łatwo odnaleźć odpowiednie funkcje w twoim narzędziu.
Po prostu będą miały takie same nazwy.
Jeśli twoje narzędzie nie będzie miało jakiejś funkcji.
Pamiętaj zawsze możesz po prostu powrócić do tej wersji terminalowej i tam na pewno taka funkcja będzie.
Jeśli po obejrzeniu którejś lekcji któreś z poleceń będzie niejasne będziesz chciał dowiedzieć się czegoś
więcej lub będziesz chciał poznać dodatkowe możliwości dlatego że każde z poleceń ma kilkadziesiąt różnych
opcji z których na codzień się nie korzysta ale może będziesz chciał także o nich wiedzieć.
Pamiętaj że każde polecenie możesz sprawdzić w dokumentacji w bardzo łatwy sposób poleceniem git help
możesz dowiedzieć się o każdym z poleceń np. git help config mogę uruchomić okno przeglądarki i tutaj jak zobaczysz
w drugim oknie pojawiło mi się okno przeglądarki które bezpośrednio skierowało mnie do odpowiedniej
strony z całą instrukcją jak korzystać z polecenia git config czyli masz tutaj wszystkie dostępne opcje polecenia
i każdy ten parametr każda opcja jest dokładnie opisana oczywiście w kursie jak widzisz nie jesteśmy w stanie
omówić każdego parametru bo trwałoby to bardzo bardzo długo.
W kursie omówione są najważniejsze takie najbardziej przydatne parametry i opcje.
Kilka jest dodanych ciekawostek.
Jeśli chcesz zagłębić się bardziej w któreś polecenie lub chciałbyś poznać jakiś problem dokonać jakichś
zmian których nie omawialiśmy na kursie.
Pamiętaj że poleceniem git help możesz po prostu każde polecenie jeszcze przejść na jego stronę w dokumentacji
i dowiedzieć się jeszcze więcej.
W kolejnych lekcjach zajmiemy się tym jeszcze jak git działa na czym polega zasada jego działania na
czym polega jego specjalność w porównaniu z innymi systemami kontroli wersji a potem już zaczniemy pracę
z naszym pierwszym repozytorium zaczniemy zapisywać zmiany.
To tyle jeśli chodzi o konfigurację.
Do zobaczenia w kolejnych lekcjach.