.gitignore
- Okunuşu
- git ignor
Kısaca
.gitignore, Git'in izlememesi gereken bağımlılık, derleme çıktısı, günlük ve gizli bilgi gibi dosya ve klasörlerin kalıplarını listeleyen düz metin dosyadır.
.gitignore dosyası nedir?
.gitignore dosyası, Git'e hangi dosyaları sürüm kontrolünün dışında tutacağını söyler. Her proje, commit edilmemesi gereken dosyalar üretir: node_modules gibi indirilen bağımlılıklar, derlenmiş çıktılar, günlük dosyaları, editör ayarları ve .DS_Store gibi işletim sistemi artıkları. Bunları .gitignore içine yazmak, onları git status çıktısından uzak tutar ve yanlışlıkla eklenmelerini önler.
Dosyadaki her satır bir kalıptır. debug.log gibi düz bir ad, o dosyayla her klasörde eşleşir; dist/ gibi sondaki bir eğik çizgi yalnızca dizinlerle eşleşir; * her karakterle eşleşir, dolayısıyla *.log tüm günlük dosyalarıyla eşleşir; baştaki ! ise önceki bir kalıbın dışarıda bıraktığı bir şeyi yeniden dahil eder. # ile başlayan satırlar yorumdur. Genellikle depo kökünde bir .gitignore bulundurur ve tüm ekibin aynı kuralları paylaşması için commit edersiniz; alt klasörlerin de kendi dosyaları olabilir.
.gitignore, taşınırken hazırlanan bir 'paketleme' listesine benzer: yeni evi karıştırmasınlar diye nakliyecilere hangi eşyaların geride kalacağını söyler. Çoğu dil ve framework için hazır şablonlar vardır ve birçok proje oluşturucu size otomatik olarak bir tane üretir.
En yaygın karışıklık, .gitignore'un yalnızca izlenmeyen dosyaları etkilemesidir. Bir dosya zaten commit edilmişse onu .gitignore'a eklemek Git'in onu izlemesini durdurmaz; önce git rm --cached ile dizinden (index) kaldırmanız gerekir. Ortam değişkenlerini içeren bir .env dosyası gibi bir sırrı yok saymak da sızıntıyı geri almaz: dosya bir kez bile commit edilip push edildiyse geçmişte kalır; bu yüzden onu iptal etmeli ve yenisini oluşturmalısınız.
Önemli noktalar
.gitignore, Git'in izlememesi gereken dosyaların kalıplarını listeler.- Tipik girdiler bağımlılıkları, derleme çıktılarını, günlükleri ve gizli bilgiler içeren
.envdosyalarını kapsar. - Kalıplar joker karakterleri (
*), dizin kurallarını (dist/), yorumları (#) ve istisnaları (!) destekler. - Yalnızca izlenmeyen dosyaları etkiler; zaten commit edilmiş bir dosyayı izlemeyi bırakmak için
git rm --cachedkullanın.
Örnek
# Create a .gitignore for a typical Node.js project
cat > .gitignore <<'EOF'
# Dependencies and build output
node_modules/
dist/
# Logs and local secrets, but keep the example file
*.log
.env
!.env.example
EOF
# Stop tracking a file that was committed before it was ignored
git rm --cached debug.log
git commit -m "Stop tracking debug.log"Sık sorulan sorular
.gitignore dosyam neden çalışmıyor?
En yaygın neden, kuralı eklemeden önce dosyanın zaten izleniyor olmasıdır; çünkü .gitignore yalnızca izlenmeyen dosyaları etkiler. git rm --cached <file> çalıştırıp (klasör için -r ekleyin) commit edin, hangi kuralın (varsa) eşleştiğini görmek için git check-ignore -v <file> kullanın.
.gitignore dosyasını commit etmeli miyim?
Evet. .gitignore dosyasını commit etmek, aynı yok sayma kurallarını ekipteki herkesle paylaşır. Kendi editörünüzün oluşturduğu dosyalar gibi kişisel kurallar için .git/info/exclude ya da git config --global core.excludesFile ile ayarlanan genel bir ignore dosyası kullanın.
.gitignore sırları korur mu?
Yalnızca sır hiç commit edilmediyse. Parola ya da API anahtarı içeren bir dosya bir kez bile push edildiyse depo geçmişinde kalır; bu yüzden açığa çıkan anahtarları iptal edip yenilerini oluşturun.
İlgili sayfalar
- GitSürüm Kontrolü, s. 10Git, dosyalardaki değişiklikleri zamanla izleyen ücretsiz, açık kaynaklı dağıtık sürüm kontrol sistemidir; iş birliğini ve hataları geri almayı kolaylaştırır.
- RepositorySürüm Kontrolü, s. 34Repository, bir projenin tüm dosyalarını ve sürüm kontrol sisteminin kaydettiği her değişikliğin eksiksiz geçmişini barındıran depolama alanıdır.
- CommitSürüm Kontrolü, s. 5Commit, Git'te projenin dosyalarının; benzersiz bir kimlik, yazar, zaman damgası ve değişikliği anlatan bir mesajla kaydedilmiş anlık görüntüsüdür.
- Ortam DeğişkeniDevOps ve Bulut, s. 36Ortam değişkeni, programın dışında işletim sistemi ya da çalışma zamanınca ayarlanan, programın davranışını yapılandırmak için okuduğu adlandırılmış değerdir.
- API AnahtarıGüvenlik, s. 2API anahtarı, API çağrılarında uygulamayı veya projeyi tanımlayan, erişim denetimi, kullanım takibi ve hız sınırı için kullanılan benzersiz gizli bir dizedir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin