.gitignore w Git
1. Wprowadzenie
.gitignore to plik określający, które pliki i katalogi Git ma ignorować (nie śledzić).
Po co ignorować pliki?
- Pliki tymczasowe (logi, cache)
- Zależności (node_modules/, vendor/)
- Pliki konfiguracyjne z hasłami (.env)
- Pliki IDE (.vscode/, .idea/)
- Pliki systemowe (.DS_Store)
2. Tworzenie .gitignore
3. Składnia .gitignore
3.1. Podstawowe wzorce
# Ignoruj konkretny plik
sekret.txt
# Ignoruj wszystkie pliki .log
*.log
# Ignoruj katalog
node_modules/
# Ignoruj pliki w katalogu
logs/*.log
# Ignoruj wszystkie pliki .txt w głównym katalogu (nie w podkatalogach)
/*.txt
# Ignoruj wszystkie pliki .txt wszędzie
**/*.txt
3.2. Komentarze
# To jest komentarz
*.log # Ignoruj logi
3.3. Negacja (NIE ignoruj)
# Ignoruj wszystkie .log
*.log
# Ale NIE ignoruj important.log
!important.log
4. Przykłady .gitignore
4.1. Node.js
node_modules/
npm-debug.log
.env
dist/
build/
4.2. Python
__pycache__/
*.pyc
*.pyo
venv/
.env
*.egg-info/
4.3. PHP
vendor/
composer.lock
.env
*.log
4.4. Java
*.class
*.jar
target/
.idea/
4.5. Uniwersalny
# IDE
.vscode/
.idea/
*.swp
# Systemy
.DS_Store
Thumbs.db
# Logi
*.log
# Env
.env
.env.local
5. Szablony .gitignore
GitHub oferuje gotowe szablony: github.com/github/gitignore
Przykład:
6. Ignorowanie już śledzionych plików
Problem:
Jeśli plik był już dodany do Git, .gitignore go nie zignoruje.
Rozwiązanie:
7. Globalny .gitignore
Ignoruj pliki we wszystkich projektach:
Przykład ~/.gitignore_global:
# IDE
.vscode/
.idea/
*.swp
# Systemy
.DS_Store
Thumbs.db
8. .git/info/exclude
Lokalne ignorowanie (nie commitowane):
Użycie: Pliki specyficzne dla Twojej maszyny.
9. Sprawdzanie ignorowanych plików
9.1. Lista ignorowanych
9.2. Sprawdź, czy plik jest ignorowany
Output:
.gitignore:3:*.txt plik.txt
10. Praktyczne przykłady
10.1. Projekt Node.js
# Dependencies
node_modules/
package-lock.json
# Environment
.env
.env.local
.env.*.local
# Logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor
.vscode/
.idea/
*.sublime-project
*.sublime-workspace
# OS
.DS_Store
Thumbs.db
# Build
dist/
build/
10.2. Projekt Python/Django
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
# Django
*.log
db.sqlite3
media/
staticfiles/
# Virtual env
venv/
env/
ENV/
# IDE
.vscode/
.idea/
*.swp
# Env
.env
11. Częste błędy
Błąd 1: Plik już śle dzony
Błąd 2: Przypadkowy commit .env
12. Najlepsze praktyki
✅ Dobrze:
- Dodaj .gitignore na początku projektu
- Ignoruj pliki z hasłami (.env)
- Ignoruj zależności (node_modules/)
- Używaj szablonów GitHub
❌ Źle:
- Commitowanie node_modules/
- Commitowanie .env z hasłami
- Brak .gitignore
13. Cheatsheet
| Wzorzec | Opis |
|---|---|
plik.txt |
Ignoruj plik.txt |
*.log |
Wszystkie .log |
folder/ |
Ignoruj katalog |
**/folder/ |
Katalog wszędzie |
!important.log |
NIE ignoruj |
/*.txt |
Tylko w głównym katalogu |
14. Podsumowanie
.gitignore to must-have w każdym projekcie:
- ✅ Chroni przed commitowaniem wrażliwych danych
- ✅ Zmniejsza rozmiar repozytorium
- ✅ Eliminuje niepotrzebne pliki
Workflow:
Co dalej:
- Lekcja 9 – Stash
- Lekcja 10 – Zaawansowane operacje
Świetnie! Umiesz używać .gitignore! 🙈