Kontrola wersji z Git
Czas trwania szkolenia:2 dni (16h)
Kod kursu:GIT
Poziom zaawansowania:
O szkoleniu Kontrola wersji z Git
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Szkolenie Kontrola wersji z Git adresowane jest do programistów, testerów, wdrożeniowców oraz administratorów, którzy chcą efektywnie korzystać z systemu kontroli wersji Git podczas codziennej pracy
Wymagania
- Od uczestników szkolenia wymagana jest znajomość obsługi komputera oraz pracy z wierszem poleceń
Zalety
- Nacisk na najbardziej problematyczne sytuacje dla początkujących, takie jak rozwiązywanie konfliktów, wycofywanie zmian, praca ze zdalnymi gałęziami czy efektywna współpraca zespołowa
- Uczestnicy szkolenia Kontrola wersji z GIT będą na bieżąco wykonywali różnorodne ćwiczenia, które pozwolą im zapoznać się z typowymi scenariuszami pracy z Gitem
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
- Dopasowanie do grupy - szkolenie może być dopasowane do wymagań konkretnej grupy, na przykład poprzez skupienie się na bardziej zaawansowanym i specyficznym wykorzystaniu Gita przez dany zespół lub pracę z wybranymi narzędziami, takimi jak konkretne środowisko deweloperskie czy wybrany graficzny klient Git
Cele szkolenia
- Praktyczne zapoznanie się z działaniem rozproszonego systemu kontroli wersji Git
- Nauka stylu pracy z Gitem uwzględniająca dobre praktyki oraz polecenia dostępne w tym narzędziu
- Poznanie modeli współpracy zespołowej zarządzanej przy pomocy Git
Program
Wprowadzenie
- Jak działają systemy kontroli wersji
- Charakterystyka pracy z rozproszonym systemem kontroli wersji Git
- Instalacja i podstawowa konfiguracja Gita
- Narzędzia dostarczane z Gitem
Lokalna praca z Gitem
- Inicjalizacja i konfiguracja repozytorium
- Katalog repozytorium i katalog roboczy (/, .git)
- Zatwierdzanie zmian (commit)
- Dobre praktyki tworzenia opisów zmian
- Praca z indeksem (staging area)
- Status repozytorium i jego plików (status)
- Przegląd historii (log, gitk)
- Ignorowanie plików (.gitignore, exclude, .gitkeep)
- Identyfikacja zmian oraz jak Git je przechowuje (hash SHA-1, katalog .git)
- Tworzenie etykiet, rodzaje etykiet (tag)
Zarządzanie historią zmian w repozytorium
- Wskaźniki, wskazywanie przodków (refs, HEAD, ^HEAD)
- Wyszukiwanie zmian z historii, zbiory zmian
- Porównywanie zmian (diff), narzędzia do przeglądania zmian
- Wyszukiwanie autorów zmian (blame)
- Wycofywanie zmian (reset, reflog, restore, revert)
- Modyfikacja zmian (git commit --amend)
- Przechowywanie zmian w schowku (stash)
Praca z gałęziami (branch)
- Czym są gałęzie i do czego są nam potrzebne
- Tworzenie i przełączanie się między gałęziami
- Usuwanie i zmiana nazwy gałęzi
- Scalanie zmian i zmiana bazy (merge, rebase)
- Rozwiązywanie konfliktów, narzędzia do rozwiązywania konfliktów
- Przenoszenie pojedyńczych zmian (cherry pick)
Zdalne repozytoria (remote)
- Metody dostępu do repozytoriów, używane protokoły (SSH, HTTP)
- Pobieranie repozytorium (clone)
- Wypychanie i pobieranie zmian (push, fetch, pull)
- Praca ze zdalnymi gałęziami
Praca grupowa z Git
- Metody zarządzania projektem w zespole
- Dobór strategii pracy (Git Flow, Github Flow, Trunk-based)
- Praca z GitHub (fork)
- Powiadamianie o zmianach (pull request)
- Dobre praktyki w projektach zespołowych
- Zasady zarządzania wydaniami i historią projektu
Dodatkowe narzędzia
- Graficzne nakładki na Git oraz integracja z IDE
- Platformy hostingowe (GithHub, BitBucket, GitLab)
- Migracja repozytorium SVN do Git
- Automatyzacja zadań Gita, skrypty dla zdarzeń (hooks)
- Przepisywanie historii (filter-repo)
- Konserwacja i optymalizacja repozytorium (fsck, gc)
- Wyszukiwanie błędów za pomocą Gita (bisect)
- Przechowywanie dużych plików (plugin LFS)
- Praca z podprojektami (submodule, subtree)