2011-11-13 20 views
5

Yerel depomu GitHub'a aktardım. Kodumu işleme sürecinde, bir .gitignore dosyası oluşturmayı unuttum. Sonuç olarak, GitHub'da istemediğim bazı klasörleri ve dosyaları (veya bu konuyla ilgili olarak yerel veri havuzumda) taahhüt ettim ve daha sonra ittim.Daha sonra gitignore nasıl uygulanır?

.gitignore şimdi nasıl başvurabilirim, böylece bazı istenmeyen klasörleri ve dosyaları ileriye taşıyabilirim?

cevap

6

Sen git rm <unnecessary file and folder names> sonra bu taahhüt öne kaldırmak, hangi sizin .gitignore dosyaya ekleyebilirsiniz bin dizini kaldırıp bir .gitignore dosyası ekleyin. Sorun, daha önceki işlemleri değiştirmedikçe tarihte kalacağıdır. Bu dosyalarda hassas bir veri yoksa, geçmişi olduğu gibi bırakırım. Veri havuzunuzdaki hassas verileri kaldırmanız gerekiyorsa, bkz. GitHub's help article on the subject

2

Bellekten onu çıkarmanız ve yeniden eklemeniz gerekir. Git göz ardı sonra yürürlüğe girecek.

Answered already?

2

bu özel repo olduğunu ve tarihini düzenlemek için filter-branch kullanın henüz yayınlamadıysanız:/add, Sonra

git filter-branch --index-filter ' 
    git rm -r --cached --ignore-unmatched bin; 
' --all 

sizin .gitignore dosyasını düzenleyin:

>> .gitignore echo bin 
git add .gitignore 
git commit -m 'add gitignore files' 

istory, yeniden yazmamak için en iyi uygulamadır. Sadece

git rm -r bin 
# add .gitignore 
git commit -m 'remove and ignore bin folder' 
+0

, gitignore kullanarak tüm klasörleri/dosyaları otomatik olarak silmek için bir yaklaşım mıdır? Silmek istediğiniz her dosya/klasör için komutlarınızı gerçekten çalıştırmam gerekiyor mu? – Rookian

+0

Basitçe 'rm -r --cached --ignore-unmatched dosya1 klasör1 dosya2 folder2 folder3 * bak test- *' yapabilirsiniz. Sadece 'filtre-dal' rotasına giderseniz tarihin yeniden yazımının sonuçlarını anladığınızdan emin olun. – knittl