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 stworzyliśmy nowe repozytorium i scommitowaliśmy w nim plik witaj tutaj poleceniem git log.
I tutaj wkradły się nam dwa małe błędy.
Mianowicie został zapisany zły autor oraz commit tutaj jego wiadomości.
Brakuje litery zamiast pierwszy jest piewszy commit czyli tutaj coś co może się zdarzyć gdy się spieszymy.
Możemy takie błędy popełnić.
Na szczęście nic poważnego się nie stało.
Można ostatni commit który zrobiliśmy bardzo łatwo poprawić.
Do tego służy polecenie git amend.
Jednak nim to zrobimy chciałbym po pierwsze poprawić tutaj naszą informację o autorze czyli git config.
I dodamy opcję global dlatego że chcemy sprawdzić ustawienia mojego użytkownika w systemie
i list żeby wyświetlił wszystkie opcje.
Tutaj widać mój błąd username Mateusz brakuje tutaj nazwiska więc po pierwsze to poprawmy.
Git config global user name.
I tutaj jeśli używasz kilku słów to musisz użyć cudzysłów przed i po sprawdźmy teraz i wygląda to prawidłowo.
Ok git log.
I tutaj mamy dwie rzeczy musimy autora poprawić i poprawić.
Message czyli komunikat którego użyliśmy i aby poprawić ostatni commit wystarczy napisać git commit tak jak byśmy tworzyli
nowy commit ale z flagą z poleceniem jeszcze amend jak widzisz ponownie jesteśmy na ekranie wpisywania
wiadomości do naszego commita i tutaj mam szansę poprawić ten komunikat.
Czyli wciskam a żeby wpisywać dane mam tryb insert przechodzę tutaj pierwszy i dopiszę tutaj jeszcze żebyśmy widzieli
dodano witaj txt.
Więc mogę poprawić wiadomość.
Poniżej tutaj mamy także informację o naszym commicie które nie będą zapisane do wiadomości są tutaj tylko
informacyjne i zwróć uwagę że tutaj autor jest zapisany nieprawidłowo.
Ja w tym miejscu go nie mogę poprawić ale on w konfiguracji już jest prawidłowy.
Zapisze więc czyli w jak write i q jak quit dwukropek w q Enter i tutaj został stworzony nowy commit ale
ten commit jak zobaczysz tutaj git log zastąpił poprzedni commit czyli został stworzony nowy commit w miejsce
pierwszego.
Mam tutaj nowszą zupełnie datę ma nową wiadomość pierwszy commit się zgadza.
Problem nadal jest z autorem zmieniłem autora zmieniłem commit.
Autor nadal jest ten sam niepoprawny i tutaj jeśli ja wpiszę git log a dodam jeszcze format full czyli więcej
informacji chcę żeby wyświetlał o tym naszym commicie.
Format full.
To zwróć uwagę że mamy tutaj dwie informacje mamy autora i mamy commitującego i teraz commitujący jest
poprawny użytkownik który stworzył ten commit jednak osobno jest informacja kto był pierwszym autorem.
Czyli tutaj Mateusz ten był nieprawidłowy poprzedni on utworzył poprzedni commit natomiast Mateusz Kulesza
czyli nasz aktualny użytkownik który jest ustawiony on tutaj ten commit edytował i jest to bardzo ważna
informacja ponieważ dzięki temu możesz rozróżnić kto był oryginalnym autorem pliku plików.
Wielu w commicie.
A kto był ostatnią osobą która ten commit modyfikowała zmieniała żeby nadpisać autora.
Musisz tutaj napisać git.
Commit jeszcze raz amend.
Jako autor musisz podać tutaj ręcznie autora.
Czyli Mateusz Kulesza i e-mail podam tu w ten sposób dokładnie tak jak jest napisane tutaj wyżej.
Mógłbym nawet skopiować to stąd.
Za dużo mi się wkleiło.
Czyli jak widzisz podmienić autora ale muszę zrobić to osobno.
Jeszcze raz wiadomość nic się nie zmieniło zapisze git log format full i teraz jak widzisz autor i commit się zgadza.
Tak więc pamiętaj przy modyfikowaniu commitów jest autor oryginalnego commita i osoba go modyfikująca i mogłyby być
to dwie różne osoby.
Jest to bardzo ważna informacja jeśli chcesz np. koniecznie zmienić autora np. dlatego że miałeś go
źle skonfigurowanego to widzisz że podając opcję autor możesz go zmienić.
Uważaj jednak dlatego że niektóre serwery na które będziemy wysyłać naszą pracę mogą mieć ustawienia nie
pozwalające na zmianę użytkownika np. po to żeby np nikt się nie podszywał jako autor czyjegoś kodu.
Przeważnie takiego autora możesz spokojnie edytować dopóki go nie wyślesz na serwer to możesz z tym commitem robić
co chcesz.
Jeśli pobierzesz czyjeś commity no to niektóre serwery mogą ci odmówić edycji użytkownika co jest zrozumiałe
nie chcemy żeby ktoś się podszywał wyczyszczę ekran i po tej lekcji powinieneś wiedzieć jak dodawać nowe pliki.
Mamy pusto czyli git add pozwalał nam dodawać nowe pliki przygotować je do scommitowania.
Ale jeszcze to nie tworzyło commita dopiero polecenie commit pozwalało wiele plików które są dodane
przygotowane opisać dodać do nich jakiś komunikat i dodać do historii zmian historię zmian.
Mogliśmy podejrzeć poleceniem git log jeśli chcesz uzyskać więcej informacji o commicie no to do polecenia
git log są dodatkowe opcje o których będziemy jeszcze rozmawiać.
Tutaj format full pozwalał podejrzeć dokładnie informacje o np. autorze.
Dodatkowo jeśli popełniłemś błąd w ostatnim twoim commicie możesz łatwo go poprawić po prostu git
commit amend i to pozwalało np. zmienić błędny komunikat w ostatnim commicie.
W kolejnych lekcjach.
Zobaczysz jeszcze inne możliwości tworzenia nowych commitów dodawania informacji do nich ale to wszystko
już w kolejnych lekcjach.
Do zobaczenia.