Bir git deposundaki tüm gizli dizinleri / dosyaları özyinelemeli olarak nasıl yoksayabilirim?


129

Git'in tüm gizli dosyaları ve dizinleri görmezden gelmesini istiyorum. yani

  • .aptitude
  • .ssh/
  • .bash_rc
  • config/.hidden

Her girişi özel olarak eklemeden bunu ele almanın basit bir kuralı var mı?

Yanıtlar:


166

Sadece bir desen ekleyin .gitignore

.*
!/.gitignore

Düzenle:.gitignore Dosyanın kendisi eklendi (henüz işlenmemişse önemlidir).


3
Bundan sonra gerekli olan bazı dosyaları zorla eklemek isteyebilirsiniz. Örneğin. .htaccess dosyası. Tabii ki gereksinimlerinize göre.
dakdad

3
@dakdad: Öneriniz için teşekkürler. Cevap geliştirildi. Poe'nun .htaccessönceden kontrol edilmiş gibi bazı özel dosyaları varsa , bunlar takip edilmeye devam eder. gitignoreyalnızca yeni dosyalar için önemlidir.
Daniel Böhmer

@ DanielBöhmer Belki bu konudan uzaklaşıyor, ancak nerede olursa olsun /.gitignoreher .gitignoredosyanın değil, sadece görmezden gelmemenin bir nedeni var mı? Yani neden liste !.gitignore(eğik çizgi yok)?
Jason Young

1
@JasonYoung İlginç soru. Bu kalıp sadece dosyanın kendisini görmezden gelir. Bunu, kopyalamak ve yapıştırmak için herhangi bir yan etki olmadan daha kısa buluyorum. Elbette, muhtemelen .gitignoreen üst düzey .gitignoredosyanızdaki herhangi bir dosyayı yok sayabilirsiniz . Ama bu seçim size kalmış.
Daniel Böhmer

64

.gitignore , yalnızca önceden 'eklenmemiş' dosyaları etkileyecektir.

Yeni .gitignore girişleri yapmak için tüm dosyaları etkileyin

  1. .Gitignore'da değişiklik yapın
  2. git commit -a -m "Pre .gitignore changes"
  3. git rm -r --cached .
  4. git add .
  5. git commit -a -m "Post .gitignore changes"
  6. git status "işlenecek hiçbir şey (çalışma dizini temiz)" çıktılamalı

Buradaki anahtar "henüz 'eklenmemiş' 'satırıdır, çünkü belirli bir dosyayı zaten kaydetmişseniz, yok sayma artık onun üzerinde çalışmayacaktır ve onu arşivden silmelisiniz ve bir dahaki sefere .gitignore oluşturduğunuzda görmezden gelecektir.
Georgi Peev

21

İçinde .git/info/exclude, şu satırı ekleyin:

.*

Bu, tüm gizli / nokta dosyalarını özyinelemeli olarak yok saymayı, makinedeki her depo için varsayılan hale getirecektir. .gitignoreBu şekilde her depo için ayrı bir dosyaya ihtiyaç duyulmaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.