Neden .gitignore dosyalarımı görmezden gelmiyor?


Yanıtlar:


236

.gitignoreyalnızca henüz deponun parçası olmayan dosyaları yoksayar. git addBazı dosyaları zaten düzenlediyseniz, bunların değişiklikleri izlenmeye devam edecektir. Bu dosyaları deponuzdan kaldırmak için (ancak dosya sisteminizden değil) git rm --cachedüzerlerinde kullanın .


10
git rm - önbelleğe alınmış dosya_adı.ext, gitignore'u bir dosya için güncellemem için sorun yaratıyor. Teşekkürler.
sybozz

3
Bunu yaptım ama GitHub hala onları izlemek ve eklemek istiyor.
Netside

105

.Gitignore dosyası Git tarafından izlenmeyen dosyaların izlenmemesini sağlar.

Bir .gitignore dosyasına klasörler / dosyalar eklemek onları izlemeyi bırakmaz - Git tarafından izlenmeye devam ederler.

Dosyaları izlemek için, .gitignore dosyasında listelenen izlenen dosyaları havuzdan kaldırmak gerekir. Ardından bunları yeniden ekleyin ve değişikliklerinizi uygulayın.

Bunu yapmanın en kolay, en kapsamlı yolu, depodaki tüm dosyaları kaldırmak ve önbelleğe almak, ardından hepsini geri eklemektir. .Gitignore dosyasında listelenen tüm klasörler / dosyalar izlenmeyecektir. Depodaki en üst klasörden aşağıdaki komutları çalıştırın:

git rm -r --cached . git add .

Sonra değişikliklerinizi uygulayın:

git commit -m "Untrack files in .gitignore"

Unutmayın ki istenmeyen dosyalar içeren önceki kayıtlar kayıt geçmişinde kalacaktır. GitHub'a gönderirken, .envveya client_secret.jsondosyalar içerebilecek bir işleme geçmişine dikkat edin .

En iyi uygulama , bir .gitignore dosyası oluşturmak ve bir projeyi başlatırken izlenmesini istemediğiniz klasörler / dosyalar ile doldurmaktır. Ancak, genellikle istenmeyen dosyaların izlendiğini ve depolandığını fark ettikten sonra .gitignore dosyasına eklemek gerekir.


cevap için teşekkür ederim. Bu gerçekten yardımcı oldu. Depoyu gitmeye de itmeyi unutmayın
Chris Reed

git rm -r --cached .Geri almayı kullandıktan sonra, tüm değişiklikler .gitignore ile dışarıda bırakılmaması gereken tüm dosyaları yeniden eklemek için de çalışır .
Adam Hurwitz

9

gitignore yalnızca izlenmeyen dosyaları yok sayar. Dosyalarınız değiştirilmiş olarak işaretlenir - yani kaydedilmişler ve geçmiş ve artık git tarafından izleniyor.

Bunları görmezden gelmek için önce onları silmeniz git rm, işlemeniz ve sonra yok saymanız gerekir.


9

Bunu kullanabilirsin,

git rm -r --cached ./node_modules

örneğin node_modules'i yok saymak istiyorsanız


4

Şuna bir bakın: .gitignore çalışmıyor Ve özellikle ADTC'den gelen açıklama:

.Gitignore dosyanızın ANSI veya UTF-8 kodlamasını kullandığından emin olun. Unicode BOM gibi başka bir şey kullanıyorsa, Git'in dosyayı okuyamaması mümkündür. - ADTC 14 Aralık '17, 12:39


0

Öncelikle git deponuzdan index.lock dosyasını silin

rm -f .git/index.lock

ve sonra .gitignore ekleyin

git add .gitignore

0

Görmezden gelinmesini istediğimiz dosyaları başlatırken ve bunlardan bahsederken .gitignore dosyası oluşturmak daha iyidir. Bazı dosyaları yok saymak istiyorsanız, git komutunu çalıştırın.rm -r --cached

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.