2012-03-19 24 views
8

Git ile ilk kez oynatıyorum ve tüm gizli dosyaları kazayla ekledim. Şimdi .gitignore'umu kurdum ve değişiklikimi yaptım, "~" ile biten tüm dosyalar hala orada.Dosyaları github adresinden kaldırın

Yerel dosyalarımı nasıl işlerim? Ve daha fazla olması gerekmeyen master'lardan nasıl kaldırırım?

+0

ile bu değişikliklerin ikisi de işlemeye gerekir? Hiç bir zaman olmadığın gibi geçmişi yeniden yazmak ister misin? – Kaz

+0

Bunu yapabilirsiniz; Sadece kafanızı işlemden önce sıfırlayın ve bunu depoya doğru itin, bu da kafayı hazırlayın. Repo, hızlı ileriye doğru itme izinlerine izin verecek şekilde yapılandırılmalıdır. Ayrıca, bu repodan çeken herkes bu değişikliği takip etmek için sert bir sıfırlama yapmak zorunda kalacak. Bu taahhüt, ilgisiz olduğu için çöp haline gelir; toplanan çöpü alır (45 gün içinde ya da bunun gibi bir şey?) – Kaz

cevap

16

Depodan silmek için dosyayı fiziksel olarak saklayın, ancak deposunuza bir dosya eklemek için git rm --cached FILENAME kullanın. Sen git rm yapıyor ve bunu işlemekle normal şekilde yanında gibi demek git commit

+2

'' --cached'' bayrağı hakkında bilmiyordum. Bunun için +1. :) –

+0

Tüm takip edilmemiş/yok sayılan dosyaları kaldırmanın herhangi bir yolu var, bu yüzden bunu elle yapmak zorunda değilim? Gedit, görünüşte açtığı her şey için gizli bir dosya oluşturur. – danielsvane

+0

Dosyalar tüm dizin yapınıza yayılıyor mu? Değilse, bunu yapmak için tortoisegit gibi bazı GUI yardımcı programlarını kullanın. – Shocker

0
Here is a DOS batch file that can help: 

SET count=1 
FOR /F "tokens=*" %%G IN ('dir /s /b *.dll') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.pdb') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.txt') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.cache') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.force') DO (call :subroutine "%%G") 
GOTO :eof 

:subroutine 
    git rm --cached %1 
    set /a count+=1 
    GOTO :eof