# Git

# Vysvětlení

  • Nejrozšířenější VCS (nástroj pro správu verzí)
  • Slouží k uchovávání historie veškerých změn (sledování změn ve zdrojových kódech během vývoje)
  • Protokoly:
    • ssh:// - port 22
    • git:// - port 9418
    • http:// - port 80
    • https:// - port 443
  • Budeme používat příkazovou řádku
  • Možné grafické nadstavby
    • V rámci IDE (InteliJ Idea, Visual Studio Code)
    • Git Kraken
    • Sublime Merge
  • Jiné VCS:
    • Apache SVN
    • Mercurial

# Registrace

  • Vytvoření účtu na Gitlabu (gitlab.com/users/sign_in#register-pane)

# Vytvoření SSH klíče

  • Hovoříme o páru privátní-veřejný klíč
  • Privátní klíč (dešifrování dat) zůstává na serveru a nikdy jej nezvěřejňujeme. Sdělením může dojít ke kompromitaci
  • Veřejný klíč (šifrování dat) používáme k autorizaci. Můžeme jej bez obav sdílet
  • Klíč vytvoříme pomocí utility ssh-keygen
  • Vygenerovaný veřejný klíč přiřadíme k účtu na Gitlabu (gitlab.com/profile/keys)

# Instalace

sudo apt install git

# Nastavení identity

Uživatelské jméno

git config --global user.name "Jmeno Prijmeni"

Emailová adresa (přiřazená k účtu na Gitlabu)

git config --global user.email jmeno@example.com

Defaultní editor

git config --global core.editor nano

Více informací tady

# Forknutí projektu

# Práce s repozitářem

  • Naklonujeme si repositář lokálně pomocí příkazu git clone $URL
  • Provedeme úpravy, poté
git add .
git commit -m "Nejaky popis prace"
git push origin

# Větvení (branches)

  • Odloučení od hlavní vývojové větve
  • Oddělená práce na zdrojovém kódu
# Nova branch
git checkout -b nova-branch

# Existující branch
git checkout existujici-branch

# Merge/pull requests

  • Požadavek pro nasazení změn do cílové větve, nebo v případě forknutého projektu do výchozího repozitáře
  • Vytváří se v grafickém rozhraní
# Lokalni merge
git merge --no-ff nova-branch

# Rebase na vychozi vetev
git rebase vychozi-branch