Git
Git je systém pro správu verzí. Hodí se pro konfigurace serveru, skripty i nasazení aplikací.
Základní příkazy
| Příkaz | Co dělá |
|---|---|
git clone URL | Stáhne repozitář |
git status | Ukáže změněné soubory |
git add . | Připraví změny ke commitu |
git commit -m "zpráva" | Uloží změny |
git push | Odešle na server |
git pull | Stáhne změny |
git log --oneline | Historie commitů |
První nastavení
git config --global user.name "Vojta"
git config --global user.email "[email protected]"
git config --global init.defaultBranch mainNasazení aplikace na VPS
Vygeneruj deploy klíč
Na serveru:
ssh-keygen -t ed25519 -f ~/.ssh/deploy_key -N ""
cat ~/.ssh/deploy_key.pubPřidej klíč do repozitáře
Na GitHubu: Settings → Deploy keys → Add deploy key. Ponech jen pro čtení.
Nastav SSH config
Host github.com
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yesNaklonuj
git clone [email protected]:uzivatel/aplikace.git /var/www/aplikaceDeploy klíč nastav jen pro čtení. Server nemá důvod do repozitáře zapisovat a při kompromitaci nepřijdeš o kód.
Jednoduchý deploy skript
#!/bin/bash
set -euo pipefail
cd /var/www/aplikace
git fetch --all
git reset --hard origin/main
npm ci --omit=dev
npm run build
systemctl restart aplikace
echo "Nasazeno: $(git rev-parse --short HEAD)"git reset --hard zahodí všechny lokální změny. Nikdy neupravuj soubory
přímo na produkci — při dalším deploy o ně přijdeš.
.gitignore
node_modules/
.env
*.log
dist/Do repozitáře nikdy nedávej .env, privátní klíče ani hesla. Jakmile je
commitneš a pushneš, jsou v historii — a smazání souboru je neodstraní.
Pokud se to stane, změň všechny prozrazené údaje. Přepsání historie samo nestačí, kopie už mohou existovat.
Větve
git switch -c nova-funkce
# ... prace ...
git commit -am "Pridava novou funkci"
git switch main
git merge nova-funkceŘešení konfliktu
git pull
# CONFLICT (content): Merge conflict in config.jsOtevři soubor, najdi značky konfliktu, uprav, poté:
git add config.js
git commitTipy
- Commituj často, malé změny. Snáz se hledá, co něco rozbilo.
- Piš srozumitelné zprávy.
fixti za měsíc nepomůže. - Používej
git statusdřív, než něco commitneš.
Poznámka
Na herních serverech Git k dispozici není — nemáš přístup k systému.