- Vrealmatic
- Git
Git jednoduše
Návod krok za krokem – od instalace Gitu a propojení s GitHubem (GitLab, Bitbucket) přes založení projektu až po každodenní práci a řešení nejčastějších chyb.

Jednou na počítači
1. Instalace a globální nastavení
Stáhněte instalátor z git-scm.com, nebo v PowerShellu spusťte:
winget install --id Git.Git -e --source wingetVýchozí volby instalátoru jsou v pořádku.
Git je součástí vývojářských nástrojů Xcode:
xcode-select --installPoužíváte-li Homebrew, můžete instalovat i takto:
brew install gitUbuntu / Debian:
sudo apt update && sudo apt install gitNa jiných distribucích použijte jejich správce balíčků (např. sudo dnf install git).
Kontrola – vypíše nainstalovanou verzi
git --versionIdentita autora commitů
Každý commit nese jméno a e-mail autora. Vyberte, jak je chcete spravovat:
Identitu nastavíte v každém projektu zvlášť (krok 3.3). Při práci pod více účty nebo na projektech s různou úrovní zabezpečení nemusíte nic přepínat a nikdy necommitnete pod špatným účtem.
Nastavení
git config --global user.useConfigOnly trueGit pak commit odmítne, dokud projekt nemá identitu. Bez tohoto řádku by si ji mohl domyslet ze systému (např. uzivatel@nazev-pc) a commitnout bez dotazu.
Kontrola – prázdný výstup = v pořádku
git config --global user.name
git config --global user.emailVypsalo se jméno nebo e-mail? Odstraňte je:
git config --global --unset user.name
git config --global --unset user.emailVhodné, pokud pracujete pod jedním účtem. Nastavení platí pro všechny projekty – lokální identitu (krok 3.3) pak nastavíte jen tam, kde chcete jinou.
Nastavení
git config --global user.name "Jan Novák"
git config --global user.email "jan@example.com"Kontrola – vypíše nastavené hodnoty
git config --global user.name
git config --global user.emailJednou na počítači
2. Propojení s GitHubem
GitHub a jiné webové Git služby vyžadují SSH klíč (nebo Personal Access Token). Každý GitHub účet má vlastní klíč a vlastní alias, přes který se k němu připojujete. Na jednom PC tak může být současně napojeno více účtů a nic se nepřepíná.
Zadejte své účty – příkazy ve všech krocích níže se podle nich upraví.
Vaše údaje – příkazy v krocích níže se podle nich upraví
Vygenerujte SSH klíč
ssh-keygen -t ed25519 -C "my-pc" -f ~/.ssh/github_account1ssh-keygen -t ed25519 -C "my-pc" -f $env:USERPROFILE\.ssh\github_account1Hlásí, že soubor nelze uložit? Složka .ssh ještě neexistuje – vytvořte ji a příkaz zopakujte:
mkdir $env:USERPROFILE\.sshPro každý účet vznikne vlastní klíč. Heslo ke klíči (passphrase) doporučujeme – chrání klíč, kdyby se dostal do cizích rukou.
Přidejte klíč do SSH agenta
Přidává se privátní klíč (= soubor bez koncovky .pub).
eval $(ssh-agent -s)
ssh-add ~/.ssh/github_account1Jednou – v PowerShellu spuštěném jako správce
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agentSSH agent se spustí a zapne i při každém startu systému. Hláška „service already running“ je v pořádku.
Přidání klíče – v běžném PowerShellu
ssh-add $env:USERPROFILE\.ssh\github_account1Výstup by měl být:
Identity added: C:\Users\<vy>\.ssh\github_account1 (my-pc)Vložte veřejný klíč do GitHub účtu
do účtu account1 (GitHub):
cat ~/.ssh/github_account1.pubdo účtu account1 (GitHub):
Get-Content $env:USERPROFILE\.ssh\github_account1.pubKaždý klíč vypište, zkopírujte a vložte do příslušného účtu:
- Přihlaste se do účtu a otevřete github.com/settings/keys (záložka SSH and GPG keys).
- Klikněte na New SSH key, pojmenujte ho podle PC a vložte zkopírovaný klíč.
Na GitHub patří jen veřejný klíč – soubor s koncovkou .pub. Soubor bez koncovky je privátní klíč a nikdy ho nikam nevkládejte.
Přiřaďte klíč k účtu (SSH config)
Otevřete soubor ~/.ssh/config (Windows: C:\Users\<vy>\.ssh\config, bez koncovky). Pokud neexistuje, vytvořte jej. Config je poskládaný z vašich účtů – stačí ho zkopírovat a vložit:
# GitHub account1
Host github-account1
HostName github.com
User git
IdentityFile ~/.ssh/github_account1
IdentitiesOnly yesHost je alias, který pak používáte místo github.com. IdentitiesOnly yes zajistí, že se k účtu použije jen jeho klíč – jinak by SSH mohl nabídnout klíč jiného účtu z agenta a GitHub by vás přihlásil pod ním.
Otestujte připojení
ssh -T git@github-account1Při prvním připojení potvrďte otisk serveru napsáním yes. Úspěch poznáte podle odpovědi se jménem správného účtu:
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.Místo toho Permission denied (publickey)?
Postup řešení najdete v častých chybách.
Postup je stejný, jen u účtu na začátku sekce zvolte službu. Klíč vložíte v GitLabu v Preferences → SSH Keys, v Bitbucketu v Personal settings → SSH keys.
Pro každý projekt
3. Nový projekt
Vytvořte repozitář na GitHubu
Klikněte na New repository, zadejte název a zvolte, zda bude veřejný, nebo soukromý. Je-li projekt na GitHubu už hotový, tento krok přeskočte.
Propojte ho se složkou v počítači
Adresu repozitáře najdete na GitHubu pod Code → SSH. github.com v ní nahraďte aliasem účtu (github-account1) – příkazy níže už ho obsahují.
Při vytváření na GitHubu zaškrtněte Add a README file. Pak repozitář stáhněte – vytvoří se složka projektu a propojení se nastaví samo:
git clone git@github-account1:<uzivatel>/<repozitar>.git
cd <repozitar>Repozitář na GitHubu vytvořte prázdný – bez README, .gitignore a licence. Pak ve složce projektu spusťte:
git init -b main
git remote add origin git@github-account1:<uzivatel>/<repozitar>.gitKontrola – vypíše, kam je projekt napojený
git remote -vVede jinam, než má (např. github.com místo aliasu)? Změňte adresu:
git remote set-url origin git@github-account1:<uzivatel>/<repozitar>.gitNastavte lokální identitu
Bez globální identity (krok 1) je tento krok povinný. S globální identitou ho použijte jen tam, kde chcete commitovat pod jinou.
Nastavení – uvnitř složky projektu
git config user.name "Jan Novák"
git config user.email "jan@example.com"Použijte e-mail z GitHub účtu, do kterého projekt patří – jinak se commity nepřiřadí k vašemu profilu.
Kontrola – vypíše identitu, pod kterou budete v projektu commitovat
git config user.name
git config user.emailVypsalo se něco jiného, než čekáte? Zjistěte, odkud hodnota pochází:
git config --list --show-originPrvní commit a push
Ujistěte se, že máte v kořeni projektu soubor .gitignore se vším, co do repozitáře nepatří (node_modules/, .env, výstupy buildu…). Hesla a klíče, které se jednou dostanou do historie, se odstraňují velmi obtížně. Hotové šablony najdete na github.com/github/gitignore.
git add .
git commit -m "První commit"
git push -u origin main| Příkaz | Co dělá |
|---|---|
git add . | Označí změněné soubory pro commit (kromě těch v .gitignore). |
git commit -m | Vytvoří commit s popiskem. |
git push -u origin main | Odešle commity na GitHub. -u stačí jen poprvé – příště jen git push. |
Průběžně
4. Každodenní práce
Běžná práce je pořád stejný cyklus čtyř kroků:
- 1.
git pullStáhne změny ostatních. - 2.
git add .Označí vaše změny. - 3.
git commit -m "…"Uloží je s popiskem. - 4.
git pushOdešle je na GitHub.
Spusťte git status. Ukáže změněné soubory a napoví i další krok.
Přehled příkazů
| Příkaz | K čemu slouží |
|---|---|
| Stav a historie | |
git status | Co se změnilo a co je připraveno ke commitu. |
git diff | Konkrétní změny v souborech. |
git log --oneline | Stručná historie commitů. |
| Větve | |
git switch -c <vetev> | Vytvoří novou větev a přepne na ni. |
git switch main | Přepne zpět na hlavní větev. |
git merge <vetev> | Sloučí větev do té aktuální. |
git push -u origin <vetev> | První odeslání nové větve na GitHub. |
| Vrácení změn | |
git restore <soubor> | Zahodí neuložené změny v souboru. |
git restore --staged <soubor> | Vrátí soubor z git add (změny zůstanou). |
git commit --amend | Opraví poslední commit – jen pokud ještě nebyl odeslán. |
Průběžně
5. Časté chyby
Projekt nemá nastavenou identitu – bez globální identity je to očekávané. Nastavte ji lokálně (krok 3.3).
GitHub nepřijal klíč. Zkontrolujte postupně:
Je klíč v agentovi? – vypíše načtené klíče
ssh-add -lKlíč chybí? Přidejte ho znovu (krok 2.2).
Po restartu Mac/Linux je potřeba klíč do agenta přidat znovu.
Funguje alias?
ssh -T git@github-account1Nefunguje? Ověřte blok v ~/.ssh/config (krok 2.4) a veřejný klíč v GitHub účtu (krok 2.3).
Používá projekt alias?
git remote -vJe tam github.com nebo https://? Změňte adresu:
git remote set-url origin git@github-account1:<uzivatel>/<repozitar>.gitWindows: Git klíč z agenta nevidí? – např. opakovaně chce heslo ke klíči
Nastavte Git, aby používal SSH z Windows (stejné jako agent):
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"SSH agent neběží.
eval $(ssh-agent -s)
ssh-add ~/.ssh/github_account1V PowerShellu jako správce (trvalé nastavení viz krok 2.2):
Start-Service ssh-agentNapojení už existuje. Místo add použijte set-url:
git remote set-url origin git@github-account1:<uzivatel>/<repozitar>.gitVětev main zatím nemá žádný commit, nebo se jmenuje jinak (např. master). Nejdřív commitněte (krok 3.4), případně větev přejmenujte: git branch -M main.
Na GitHubu jsou změny, které lokálně nemáte. Stáhněte je a push zopakujte:
git pull --rebase origin main
git pushE-mail v commitech neodpovídá žádnému e-mailu ve vašem účtu. Zkontrolujte git config user.email (krok 3.3).
Potřebujete s něčím poradit?
Zjistěte, zda a jak vám můžeme pomoci.