Course Code: gitnetia
Duration: 21 hours
Course Outline:

1. Wprowadzenie
o Zrozumienie czym jest system kontroli wersji
o Różne architektury systemów kontroli wersji
o Dlaczego Git stał się najpopularniejszym narzędziem w swojej kategorii:
 przedstawienie cech programu
 porównanie z innymi systemami
o Historia powstania i przeznaczenie Git
o Podstawowe programy linuksowe
2. Praca z dokumentacją
o Czytanie synopsis (skrót opisu interfejsu)
o Odnajdowanie informacji w dokumentacji
3. Git na lokalnym komputerze
o Pierwsze kroki:
 Instalacja środowiska na platformach Windows, Mac, Linux
 Konfiguracja środowiska pracy (Poziomy konfiguracji, Ustawianie
danych użytkownika, Konfiguracja domyślnego edytora, Podstawy
VIM)
 Inicjalizacja repozytorium
o Operacje na plikach:
 Katalog repozytorium (katalog roboczy, katalog git)
 Cykl życia plików i stan plików
 Status repozytorium
 Dodawanie do indeksu i wycofywanie oczekujących zmian
 Dodawanie migawek
 Ignorowanie pików, globy
o Operacje na branchach:
 Korzyści i koszty pracy z gałęziami
 Tworzenie gałęzi
 Zmienianie nazwy gałęzi
 Usuwanie gałęzi lokalnie
 Przełączanie się między gałęziami
 Scalanie gałęzi
o Poruszanie się po acyklicznym grafie skierowanym historii:
 Wskazywanie przodków
 Wskazywanie zbiorów commitów (notacje double, triple dots)
 Porównywanie rewizji
 Historia zmiany (Całego repozytorium, linijki w pliku, pliku)
 Filtrowanie commitów
 Nadpisywanie historii

 Usuwanie commitów
o Jak git przechowuje dane
 Anatomia folderu .git
 Czym jest funkcja haszująca SHA-1 i jaka jest jej rola
 Anatomia obiektów Git ( Wskaźniki zarządzane, Wskaźniki
niezarządzane, Podstawowe obiekty w bazie key-val )

4. Git, a praca zespołowa w sieci:
o Synchronizacja pracy
 Pobieranie zdalnego projektu
 Opcje autentykacji użytkownika ( HTTPS, SSH, GPG )
 Wskaźniki typu remote
 Synchronizacja ze wskaźnikami remote
 Wypychanie zmian
 Pull Request
o Oprogramowanie serwerowe Git - wprowadzenie:
 GitHub
 BitBucket
 GitLab
o Strategie efektywnej organizacji pracy:
 Tagowanie
 Dobre praktyki sprzyjające przepływowi informacji
 Dobór strategii ze względu na charakterystykę projektu
 Przydatne konwencje w pracy zespołowej
 Łączenie metodyk zwinnych z funkcjonalnościami Git

5. Dodatkowe narzędzia:
o Mechanizm schowka do szybkiego przełączania kontekstu pracy
o Wykorzystanie komendy rebase
o Cherry pick, Aliasy, Reflog
6. Projekt zespołowy symulujący rzeczywistą pracę:
o Kilka wariantów projektów
o Przedstawienie problemu i konwencji pracy
o Podział zadań
o Praca równoległa
o Scalenie zmian
o Wydanie efektu pracy