2015-08-26 30 views
8
mkdir repo 
cd repo 
git init 
mkdir temp 
touch temp/in.tmp 
touch out.tmp 
echo '*tmp' > .gitignore 
kullanım git clean -Xn buna Would remove in.tmp

Git temizleme, .gitignore içindeki tüm dosya listesini nasıl temizler?

yüzden olduğunu merak göstermek Would remove out.tmp

ama

git clean -Xdn çok işe birlikte temp/in.tmp kaldırmak istiyorum ama cd için temp dizini göstermek ve git clean -Xn çalıştırmak

.gitignore içerisindeki tüm dosya listesini kaldırmak için bir komut içerir, bu durumdanasıl kullanılırkaldır temp/in.tmp ve out.tmp

$ git --version 
git version 1.9.5.msysgit.1 

Ben git clean -Xn o göstermek

touch temp/a.txt 
git add temp/a.txt 
git clean -Xn 

çalışmak görünüyor

bunu temp dizinde bir dosya ekleyin ve sahne garip bir şey buldum

Would remove out.tmp 
Would remove temp/in.tmp 

ama neden böyle oluyor? Eğer .gitignore

git clean -fdx

tarafından göz ardı dosyayı silmek istiyorum, çünkü

+0

için. docs şöyle diyor: * Çalışmakta olan ağacı ** ardışık olarak ** sürüm denetimi altında olmayan dosyaları yürürlükteki dizinden başlayarak temizler. * –

+0

Vahşi bir tahmin: Git yalnızca dizin içindeki dizinleri -X seçeneği ile yok sayar. 'temp' dizini (çünkü başlangıçta bunu bilmiyor, sadece bir dosya ekledikten sonra). Sorunu Ubuntu'da Git 2.1.4 ile çoğaltabilirim. Neden bunu sormak için [email protected]? – krlmlr

cevap

1

Sen -x ihtiyaç olacak successufully temiz her şey Garip sen

macsp:repo proto$ git clean -fdxn Would remove .gitignore Would remove out.tmp Would remove temp/ macsp:repo proto$

+0

ama '-x 'de tüm çı- karılanmamış dosyaları da siliyor – Hanlin

+0

Tamam, ben işaret ettim. .gitignore ile eşleşen tüm dosyaları silmek istiyorsunuz, ancak tüm diğer programlanmamış dosyaları silmeyin. Sanırım bu sorun, git'in boş klasörleri izlememesi nedeniyle gerçekten bir köşe davası. –

+0

Ben gnore denilen bir CLI üzerinde çalışıyorum, bunu çözmeli ve diğer birçok güzelliği ekleyelim – jamrizzi

İlgili konular