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