Modul 09 · Git a GitHub bez teorie

Co do repozitáře nepatří

Klíče, hesla a soubory, které tam nemají co dělat. Nejčastější bezpečnostní chyba začátečníků a jak jí předejít.

11 minlekce 53/107

Po lekci umíš

  • Víš, co se do Gitu nikdy nesmí dostat
  • Umíš nastavit .gitignore
  • Víš, co dělat, když se tajemství přesto dostane do historie
Obsah lekce (4)

Git si pamatuje všechno. To je jeho síla i past: co jednou commituješ, zůstává v historii, i když to potom smažeš.

Proto je potřeba vědět, co tam nepustit.

Tři kategorie

  1. Tajemství

    Hesla, API klíče, tokeny, přístupy k databázi. Nikdy. Za žádných okolností.

  2. Věci, které se dají vyrobit znovu

    Nainstalované balíčky (node_modules), výsledky buildu (.next, dist, out). Zabírají obrovský prostor a nemají žádnou hodnotu – vyrobí se příkazem.

  3. Osobní a systémové smetí

    Nastavení tvého editoru, systémové soubory (.DS_Store na macOS), lokální poznámky, testovací data se skutečnými jmény lidí.

Soubor .gitignore

Seznam toho, co má Git ignorovat. Leží v kořeni projektu.

.gitignore
# závislosti
node_modules/

# build
.next/
out/
dist/

# proměnné prostředí
.env
.env.local
.env*.local

# systém a editory
.DS_Store
Thumbs.db
.vscode/
.idea/

# logy
*.log

Většina projektů založených moderním nástrojem už rozumný .gitignore má. Stojí za to ho zkontrolovat.

Prompt pro Claude Code

Zkontroluj, co se commituje

Než poprvé pošleš projekt na GitHub.

Zkontroluj mi tenhle projekt z pohledu bezpečnosti Gitu.

1. Je v repozitáři něco, co vypadá jako heslo, klíč, token nebo přístup?
 Prohlédni i historii, ne jen aktuální stav.
2. Commitují se soubory, které by se commitovat neměly – závislosti,
 build, lokální nastavení?
3. Je .gitignore úplný pro tenhle typ projektu?

Vypiš mi nálezy a u každého napiš, jak vážné to je. Zatím nic neopravuj.

Klíče patří do proměnných prostředí

Když aplikace potřebuje API klíč, nepíše se do kódu. Ukládá se do souboru .env.local, který je v .gitignore.

Aby ostatní věděli, jaké proměnné projekt potřebuje, přidává se do repozitáře soubor .env.example – se jmény proměnných, bez hodnot.

.env.example
# Zkopíruj do .env.local a vyplň skutečné hodnoty.
# Tenhle soubor se commituje, .env.local nikdy.

DATABASE_URL=
RESEND_API_KEY=
NEXT_PUBLIC_SITE_URL=http://localhost:3000

Podrobně o tom byla lekce o proměnných prostředí.

Když se klíč dostane do historie

Stane se to. Důležité je vědět, co dělat, a hlavně v jakém pořadí.

  1. Zneplatni klíč

    První a nejdůležitější krok. Jdi do služby, která klíč vydala, a zruš ho. Vygeneruj nový.

  2. Až potom řeš historii

    Odstranění z historie je složité a nikdy není stoprocentní. Klíč mohl být zkopírovaný dřív, než jsi to zjistil.

  3. Přidej ho do .gitignore

    Ať se to neopakuje.

Cvičení10 minut

Spusť ve svém projektu kontrolní prompt z téhle lekce.

Když najde problém, oprav ho. Když nenajde, přidej si do CLAUDE.md řádek: „Nikdy necommituj soubory s klíči nebo hesly. Před commitem zkontroluj změněné soubory.“

Co si odnést

  • Do Gitu nepatří tajemství, generované soubory a osobní smetí.
  • .gitignore říká, co se má ignorovat. .env.example říká, jaké proměnné projekt potřebuje.
  • Když se klíč dostane do historie: nejdřív ho zneplatni, teprve pak řeš historii.
  • Klíč ve veřejném repozitáři ber vždycky za kompromitovaný.

Máš to za sebou?

Označ lekci jako hotovou, ať víš, kde jsi skončil. Nic se tím neuzamkne.

Obsah aktualizován: 21. srpna 2026