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!
W poprzedniej lekcji korzystaliśmy z git huba i korzystaliśmy z gita i właśnie przy użyciu gita tutaj
z tego adresu mogliśmy pobrać całe repozytorium zawierające pliki źródłowe do książki git book i pobrać je
na nasz komputer na komputer lokalny w katalogu książka git mamy nie tylko właśnie całe repozytorium
ale jak zobaczymy git log np. 10
i w ten sposób wszystkie ostatnie zmiany całą historię możemy zobaczyć co się działo kto coś zmieniał
w jakich plikach.
Czyli wszystko to co robiliśmy lokalnie.
Cała taka historia zmian może właśnie znajdować się na git hubie w repozytorium publicznym z którego mogą korzystać
inni z którego mogą korzystać wszyscy lub tylko uprawnione osoby którym daliśmy dostęp do takiego naszego repozytorium.
W tej lekcji zajmiemy się stworzeniem własnego konta na git hubie utworzymy przykładowe repozytorium.
Jednak to wymaga kilku poleceń.
Zobaczysz nie jest to skomplikowane.
Zrobimy to w tej lekcji.
Ok.
Czyli pierwszą rzeczą która będzie nam potrzebna będzie to oczywiście konto na git hubie które założymy sobie konto.
Ja skorzystam z adresu e-mail będzie nam potrzebny adres email ja skorzystam z jakiegoś takiego założonego na potrzeby
kursu.
Tobie polecam skorzystać z adresu e-mail na przykład twojego głównego twojego prywatnego lub firmowego takiego z którego będziesz
korzystał dlatego że warto mieć konto na git hubie nawet swoje własne prywatne.
No i tutaj to konto musi być prawdziwe żeby te emaile mogły przychodzić na przykład potwierdzić zaakceptować różne rzeczy
ale tak żeby dostawać powiadomienia o tym co się dzieje z twoimi repozytoriami.
Co robią twoi współpracownicy właśnie na git hubie czyli tu mam konto eduweb git.
I tak samo nazwę tutaj eduweb git.
Nazwa jest dowolna.
Wybierz sobie jakąś taką nazwę po której będzie wiadomo że to ty jesteś jakąś taką wyróżniającą ciebie
dlatego że ta nazwa będzie pojawiała się przy wszystkich informacjach przy komentarzach.
A co najważniejsze przy twoich commitach będzie też opcja wyświetlania imienia i nazwiska ale jednak fajnie
by ta nazwa jakoś ciebie identyfikowała dzięki czemu osoby współpracujące z tobą.
Na przykład wysyłając linka komuś ta nazwa też będzie w adresie do twoich repozytoriów.
Żeby była jakaś wygodna przystępna żeby było wiadomo kto to jest i czyje to są repozytoria.
Ja tu akurat wybrałem taką nazwę podam nasz adres e-mail tutaj wstaw swój adres e-mail najlepiej do działającego
adresu e-mail takiego który może odbierać emaile dlatego że git wyśle nam powiadomienie i wyśle nam też link
do odblokowania tego konta.
Więc ten e-mail sprawdź czy na pewno możesz się na niego zalogować oczywiście tutaj jakieś bezpieczne hasło powinno
zawierać 7 znaków i jedną literę
powiedzmy wpisze sobie jakieś hasło ok.
Tu wszystko się zgadza zapisz hasło i tutaj mam wybór planu.
Czy jest to plan darmowy czy plan płatny i na nasze potrzeby w zupełności wystarczy.
Plan darmowy.
Jeśli pracujesz firmowo macie jakieś projekty prywatne.
Jest was więcej programistów pracujących nad jednym projektem no to polecam zapoznać się ze szczegółami
takiego planu płatnego.
On ma troszkę większe limity troszeczkę więcej możliwości jest jeśli chodzi o konfigurację dostępu.
Kto ma dostęp do twojego repozytorium kto nie ma różne uprawnienia.
Ta wersja free jest dość obszerna daje dość duże możliwości jeśli chodzi o takie prywatne projekty hobbystyczne
czy o projekty Open Source.
One w zupełności wystarczy jeśli pracujecie już firmowo profesjonalnie za te parę dolarów za
osobę na miesiąc.
Myślę że to nie jest duża kwota.
Kwestia kilku kaw w miesiącu a jak zobaczysz w kolejnych lekcjach taki portal typu git hub naprawdę bardzo
usprawnia pracę w zespole ja wybierę opcję free.
Przejdę dalej mamy jakiś taki kwestionariusz.
Ankieta polecam wypełnić.
Wiadomo też kim jesteś czego oczekujesz od git huba na pewno się przyda.
Ja tutaj to pominę do kursu OK i tu już taki jest przewodnik i tobie też polecam poczytać zobaczyć jakie są opcje możesz zapoznać
się.
Jest to coś w rodzaju instrukcji a bardziej przewodnika który pokaże ci jakie funkcje możliwości posiada git.
Być może coś się zmieniło.
Często wprowadzane są różne zmiany poprawki więc być może będzie tu jeszcze coś nowszego niż ja teraz
pokazuje dlatego warto zapoznać się z tym ja tutaj żeby nie przedłużać przejdę od razu do projektu
przeczytam po prostu we własnym tempie.
Polecam przeczytać ten przewodnik.
Ok.
Rozpoczniemy projekt.
To bardzo ważna rzecz jak już wspominałem adres e-mail musi być funkcjonalny musi być działający abym mógł
tutaj zweryfikować ten adres i uzyskać dostęp do tego konta.
Czyli jak widzisz mam już odebranych wiadomość od gmaila.
Wystarczy kliknąć w ten link albo przekopiować ten długi link tutaj od początku do końca na pewno żeby nie
było żadnych spacji otworzyć go w nowym oknie przeglądarki.
Ok start projekt.
Wszystko się zgadza.
Pierwszym ekranem już jest od razu tworzenie Twojego pierwszego repozytorium.
Ja ten krok pominę spróbuje wrócić do głównej strony naszej
o nie może trzeba zacząć jakiś projekt.
Świetnie więc zobaczymy tutaj nasze projekty to były np. książka git.
Tego nie chcemy.
Ja chcę nasz projekt wysłać czyli git.
Pierwsza strona pierwsza strona pierwsza strona w ten sposób.
Tu jest nasz projekt git i ten projekt nasz będę chciał umieścić na git hubie więc zróbmy to np. strona
git albo git strona.
Jeszcze prościej.
Czylipojawia nam się git strona której jak widzisz właścicielem jest git możesz pracować jednocześnie na git hubie w kilku różnych organizacjach.
Czyli możesz z twojego konta podpiąć do kilku firm i pracować nie tworząc osobnych kont tylko podpinać się
pod różne firmy do różnych projektów.
Opis jest opcjonalny.
Strona o git.
I tu jest właśnie jest dostęp publiczny lub dostęp prywatny.
I teraz jeśli masz konto firmowe to możesz nieskończenie wiele tworzyć tych prywatnych.
Jeśli masz konto darmowe to masz tu jakiś limit nie wiem dokładnie jaki musiałbyś też sprawdzić ja tu stworzę publiczny
dostęp.
Pamiętaj jednak że jeśli tworzysz publiczne konto to tak jak ja przed chwilą pokazywałem że mogę sobie
wyszukać jakieś repozytorium sobie je obejrzeć czy pobrać do siebie.
Tak samo każdy użytkownik internetu będzie mógł sobie znaleźć nasze repozytorium lub je podejrzeć.
Oczywiście nie będzie musiał wprowadzić żadnych zmian bo to jest nasze repozytorium.
Abyśmy mogli sobie przejrzeć czy utworzyć lokalną kopię.
Jeśli pracujesz na projekcie darmowym na projekcie open source lub jakimś twoim prywatnym hobbystycznym projektem to
opcja public jest jak najbardziej OK.
Jeśli te dane nie są do publicznego wglądu jeśli chcesz żeby ktoś nie miał inny do nich dostępu wybierasz opcję
private projekt to jest git.
Tutaj mamy opcję zainicjalizuj z plikiem read me.
Jeśli chcesz zacząć całkowicie nowy projekt no to wybierasz tą opcję.
Jeśli masz już istniejący projekt no to tej opcji nie zaznaczasz bo wszystkie pliki już są.
Czyli nie chcemy żeby on utworzył jakieś pliki stwórz repozytorium.
I tu też bardzo fajnie ze strony git huba bo jak mam już stworzone repozytorium od razu nam podpowiada co możemy zrobić.
Czyli od razu dodaję tu adres ponieważ z tego adresu korzystaliśmy żeby się połączyć z tym git hubem żeby pobrać zmiany.
A bo tutaj mamy dwie opcje czyli jeśli chcemy stworzyć zupełnie nowe repozytorium jak widzisz tu są znane już
polecenia tu jest tworzenie nowego pliku to robiliśmy jest init.
Czyli inicjalizacja nowego repozytorium to też robiliśmy.
Jest tu pierwszy commit natomiast tu niżej znajdują się nieco nowe polecenia.
I właśnie w tej lekcji tu pokażę ci jak się do tego podpiąć czyli git remote add origin i wypchnij zmiany.
My już mamy istniejące całe repozytorium tych kroków wykonywaliśmy tylko dwa nowe polecenia których
jeszcze nie wykonywaliśmy.
Pierwsze polecenia jak widzisz doda nam wskazanie na Richmond Origin i tym adresem.
Czy jakbyśmy klon i klony wam jedno repozytorium do naszego drugiego katalogu to ten drugi Katalog on
miał w swoich opcjach git konflikt w pliku kimkolwiek miał informację właśnie o Richmond Origin czy
o adresie z którym ma się synchronizacja.
Jeśli nasze repozytorium adresu nie ma w sobie git.
Listy to jak widzisz takiego adresu nie ma więc nic nie szkodzi.
Możemy zawsze taki nowy adres do zdalnego repozytorium dodać wystarczy właśnie wykonać polecenie gitary
out at Origin który akurat przy kopiuje cały ten temat to poleceniem tylko przypisywał kopiuje i wykonał
go w tym projekcie pierwsza strona OK.
I teraz jeszcze raz spojrzymy na konfigurację pojawiły się znowu tak jak przy naszym poprzednim repozytorium.
Tak teraz to nasze oryginalne repozytorium ustaliliśmy żeby się dało właśnie z naszym repozytorium z
danymi na serwerze czyli Capcom jest nasza nazwa użytkownika czyli moim przypadku git.
I nasze repozytorium Git które przed chwilą utworzyły mam 2 mamy główny adres mam tu jeszcze lecz informacje
jak pobierać.
Do tego jeszcze wrócimy opowiem o gałęziach danych tak żebyś też rozumiał żebyś rozumiała co się dzieje
w tej drugiej linii.
Jeśli to repozytorium nasze jest teraz połączone z gradem to ja mogę te wszystkie zmiany które mam wypchnąć
więc ja sobie kupuję git push u Origin Master i przejdźmy do polecenie przejdź do zakładki KOD i i tutaj
nic nie ma nawet co raz pokazuje mi z powrotem ten sam ekran dlatego że tor po którym nie ma żadnych
plików jest ono puste.
Tutaj w naszym projekcie GITD logo mamy wszystkie nasze zmiany.
Cały nasz nasz cofał stronę gdzie nasz spis treści zrobiliśmy więc teraz dodając To polecenie jest skopiowane.
Przed chwilą czyli git push git push wypycha zmiany do Origin Origin.
Przed chwilą podaliśmy że daliśmy zdalny adres i daliśmy mu nazwę Origin jest taka domyślny tak samo
jak Master muszą gałęzią tak samo Origin.
Tu jest taka nazwa wybrana jako ten pierwszy najważniejszy serwer więc ten serwer Origin czyli źródło.
I teraz my wypełniamy git push na serwer Origin gałąź Master do gałęzi Master na serwerze czyli naszą
gałąź miasta na której jesteśmy teraz mamy do zdalnej gałęzi Master opcja.
Oznacza upstream czyli chcemy zapamiętać aby kolejne push wykonane w tym naszym tej naszej gałęzi żeby
automatycznie wpływało właśnie do tej gałęzi sprawdźmy.
U mnie pojawił się taki komunikat za loguje się do GITD Capcom mógł spróbować zalogować się z moją nazwą
użytkownika
OK.
I się udało.
Jak widzisz ja musiałem tę nazwę komunikat i hasło które stworzyłem wpisać żeby wysłać zmiany do tego
za chwilę wrócimy zobaczę co się stało tutaj.
Witam jeszcze raz KOD.
Jak widzisz wszystkie nasze pliki pojawiły się tutaj na okładce kod a dodatkowo nasze gałąź Master znajduje
się tu.
Jak widzisz inny gość tutaj nie ma bo tylko w jedną gałąź gałąź Master i tu są wszystkie nasze pliki
oraz cała nasza historia.
Jak widzisz wszystkie nasze komitety tutaj się znajdują mogę je sobie przejrzeć.
Dodatkowo bardzo dużą zaletą GITD chyba jest to że prezentuje nasz treść nasz kod w dużo bardziej przyjazny
przejrzysty sposób.
Jak pamiętasz u nas git Lock wyglądał w ten sposób nie wiem może dla jednych jest to bardziej czytelne
dla innych nie.
Tutaj na pewno i tam zobacz że każdy komitet jest tutaj mały niski a jednocześnie widać z czego kosmita
widać autora jest to nasz login.
Widać też kiedy był komentowany i jako data tu i długa tylko informacje.
To pokazuje kiedy kilka dni temu Komitet też są podzielone według dat jest to bardzo wygodne.
Dodatkowo i tutaj kliknąć w którymś z komitetów odpowiednich tutaj czy obojętnie czy na jego tytuł zobaczysz
tutaj oprócz szczegółowych informacji na górze mam tu jeszcze dokładny do tego kosmita czyli to co musieliśmy
robić wcześniej poleceniem Get Lock lub kit.
I tam opisywały to wszystko w konsoli.
Tutaj widzimy bardzo ładny taki po kolorowa właśnie Thief każdy język typu Java skrót HTML CSS brzmią
odrębne konkurowanie dzięki czemu jest to bardzo wygodne bardzo czytelne.
Jak widzisz mamy różne opcje dodawania komentarzy do tego jeszcze wrócimy w kolejnych lekcjach.
Tutaj widzisz możesz komentarz napisać możesz komentarz do konkretnej linii dodać tutaj jeszcze opcję
Bros Files.
Jak widzisz tutaj mogę podejrzeć nie tylko jeden plik tylko mogę tak jakbym właśnie zrobił sobie git
czekał.
I wybrał dokładnie w tym momencie w czasie.
Mogę powiedzieć wszystkie pliki w tym momencie.
Czy przed przyjściem do kosmitów zobaczy się jak to repozytorium wyglądało dwudziestego czwartego powiedzmy
kwietnia zmieniono nagłówek klikając tutaj pokaż repozytorium w tym czasie drugi czekał trzy mogę dwa
miesiące temu zobaczyć jak strona wyglądała.
Mógłbyś plik Index zobaczyć też jeszcze nie było spisu treści i tak dalej.
Bardzo jest to wygodne do przeglądania tego naszego kodu.
Jak zobaczysz tutaj to jest tylko część funkcji w kolejnych dniach czasem się jeszcze konfiguracja a
następnie pokaże ci pewne sposoby pracy żeby pracować efektywnie sprawnie w kilka osób jak się komunikować
właśnie aby stawiać sobie wiadomości powiadomienia właśnie zanim jeszcze przejdziemy skupimy się na
konfiguracji żeby najpierw nam było wygodnie a dopiero zajmiemy się pracą zespołową.
Do zobaczenia w kolejnej lekcji.