12. .gitignore a .env (5 min)
Výstup bloku: účastníci vědí, co do repozitáře nepatří, a umí s hesly pracovat bezpečně.
.gitignore (2 min)
Soubor v kořeni repozitáře, který říká Gitu, co ignorovat.
# tajemství
.env
# závislosti a build
node_modules/
vendor/
dist/
# systém a editory
.DS_Store
Thumbs.db
.idea/
.vscode/
- Funguje jen pro soubory, které Git ještě nesleduje. Již commitnutý soubor je třeba odebrat z indexu:
git rm --cached .env. - Hotové šablony: https://github.com/github/gitignore.
.env a .env.example (3 min)
Aplikace čtou hesla a nastavení z proměnných prostředí. Lokálně je máme v souboru .env, který nikdy nepatří do Gitu.
.env (lokální, ignorovaný):
DB_PASSWORD=skutecne-tajne-heslo
DB_ROOT_PASSWORD=jeste-tajnejsi
.env.example (v Gitu, bez skutečných hodnot):
DB_PASSWORD=
DB_ROOT_PASSWORD=
Nový člen týmu udělá:
cp .env.example .env
# doplní hodnoty
Souvislost s Dockerem: compose.yml z bloku o Composu čte ${DB_PASSWORD} právě z .env.
Co když heslo uniklo do Gitu
- Heslo okamžitě změnit (rotovat). Smazání souboru v dalším commitu nestačí, zůstává v historii.
- Teprve pak případně čistit historii (
git filter-repo), to už je pokročilé téma.
Shrnutí školení
Prostředí jako kód (Compose), kód ve verzích (Git), změny přes pull request, tajemství mimo repozitář.