Git

Git Pro V2 - źródło główne 'suchej wiedzy' (poza tym są świetne manuale i help wbudowany w gita)

  1. Wprowadzenie
    • czym jest git:
      Rozproszony system kontroli wersji
    • do czego służy:
      Wersjonowanie plików opartych na tekście.
    • do czego nie służy (albo z czym sobie słabo radzi):
      Nie wersjonować plików binarnych (zdjęć, pdf-ów, spriteów, pliów wykonywalnych).
      Rozwiązanie - GIT LFS.
  2. Instalacja - Konfiguracja - Stworzenie repozytorium
  3. Co powinno się znaleźć w większości repozytoriów gita:
    • licencja - BARDZO WAŻNE JEŻELI REPOZYTORIUM MA BYĆ OPUBLIKOWANE
    • README
    • gitignore - nie jest niezbędne, ale ułatwia życie z gitem
  4. Status - Add - Restore (–staged) - Commit - gitignore
    • git status
    • Stany w jakich może być pliki w gicie:
      • untracked
      • commited (unmodified)
      • modified
      • staged
    • git add - dodanie pliku do repozytorium/przestrzeni staged
    • git restore - przywrócenie pliku do wersji bez zmian
    • git commit - zatwierdzenie zmian w dodanych (staged) plikach
  5. Strategie commitowania
    • jeden plik jeden commit
    • jeden feature jeden commit
  6. Log - Tag - Diff
    • git log:
      1. -graph –all
    • git diff - różnice pomiędzy plikami w poszczególnych commitach
    • git tag - możliwość opcjonalnego otagowania commitów ułatwiających późniejsze przeszukiwanie historii zmian
  7. Remote - Push - Clone - Pull
    • git remote - zarządzanie zdalnymi kopiami repozytorium
    • git clone - klonowanie zdalnego repozytorium
    • git push - wysyłanie zmian do repozytorium
    • git pull - ściąganie zmian z zdalnego repozytorium
  8. Branch - Checkout - Merge - Rebase
    • git branch - zarządzanie /odnogami/ w repozytorium
    • git checkout - zmiana aktualnego brancha
    • git merge - połączenie dwóch branchy
    • git rebase - ściągnięcie zmian (commitów) z jednego brancha do drugiego
  9. Strategie branchowania: Branching Workflows
  10. Konflikty
    • konflikty są nieuniknione!
    • powstają przy edycji tago samego pliku w równoważnych (równoległych w drzewie) commitach
  11. Checkout - Reset
    • git comit –amend - nadpisanie/edycja ostatniego commita
    • git reset - opcja nuklearna
    • git checkout - możliwość przejścia do X-owego commitu z historii zmian
  12. Stash
    • git stash - schowek