Πρόβλημα: Το Git θέλει να παρακολουθεί ΟΛΑ τα αρχεία σας, ακόμα και τα άχρηστα:
.tmp)node_modules/).env).DS_Store)Λύση: .gitignore
mkdir demo-gitignore && cd demo-gitignore
git init
# Δημιουργία αρχείων δοκιμής
echo "print('app')" > app.py
echo "SECRET_KEY=123456" > .env
mkdir temp && echo "cache" > temp/cache.tmp
mkdir logs && echo "error logs" > logs/app.log
# Χωρίς .gitignore, το Git θέλει να παρακολουθεί τα πάντα
git status # Προβολή όλων των αρχείων
# Δημιουργία .gitignore
cat > .gitignore << EOF
# Ευαίσθητα αρχεία
.env
*.secret
# Προσωρινοί φάκελοι
temp/
logs/
build/
# Αρχεία συστήματος
.DS_Store
*.tmp
EOF
# Τώρα το Git αγνοεί αυτά τα αρχεία
git status # Πιο καθαρό!Χρήσιμα μοτίβα:
| Μοτίβο | Αγνοεί |
|---|---|
*.log | Όλα τα αρχεία .log |
temp/ | Ολόκληρο τον φάκελο temp |
.env* | Όλα τα αρχεία που αρχίζουν με .env |
!important.log | Εξαίρεση: κράτημα αυτού του αρχείου |
build/** | Όλα μέσα στο build αναδρομικά |
Έτοιμα πρότυπα:
__pycache__/, *.pyc, .envnode_modules/, npm-debug.log*.class, target/# Επαλήθευση αν ένα αρχείο αγνοείται
git check-ignore -v .env # Αν αγνοείται: εμφανίζει τον κανόνα
git check-ignore logs/app.log # Αν αγνοείται: τίποτα δεν εμφανίζεται
# Επιβολή προσθήκης αγνοημένου αρχείου (αν είναι πραγματικά απαραίτητο)
git add -f fichier-ignore.tmp
# Προβολή όλων των μη αγνοημένων αρχείων
git ls-filesΧρυσός κανόνας: Δημιουργήστε το .gitignore στην ΑΡΧΗ του έργου!