Yerel (izlenmeyen) dosyalar geçerli Git çalışma ağacından nasıl silinir?
Gereksiz yerel dosyalar mevcut çalışma ağacından nasıl kaldırılır?
- 1
- 2
-
Gereksiz dosyaları çalışma ağacından silin
Adım 1 -
-n parametresiyle nelerin kaldırılacağını gösterin:
git clean -n
Temiz adım - Dikkat: Bu dosyaları siler :
git clean -f
- Dizinleri kaldırmak için
git clean -f -d
git clean -fdveya
git clean -fd
-
git clean -fXsayılan dosyaları kaldırmak için
git clean -f -Xveya
git clean -fX
- Yok sayılan ve yok sayılan dosyaları kaldırmak için
git clean -f -Xveya
git clean -fX
Son iki takımın
X olaylardaki farkına dikkat edin.
clean.requireForce yapılandırmanızda "true" (varsayılan) olarak ayarlanmışsa,
-f belirtmelisiniz, aksi halde hiçbir şey olmaz.
fonksiyonlar
-f
- güç
Git clean.requireForce yapılandırma değişkeni false olarak ayarlanmamışsa, Git clean, -f, -n veya -i belirtilmediği sürece başlatmayı reddeder.
-x
.Gitignore (her dizin için) ve $ GIT_DIR / info / exclude'den okunan standart yoksayma kurallarını kullanmayın, ancak -e seçenekleriyle belirtilen yoksayma kurallarını kullanın. Bu, ürünlerin montajı dahil olmak üzere işlenmemiş tüm dosyaları silmenizi sağlar. Bu, temiz bir yapı olup olmadığını kontrol etmek üzere sağlam bir çalışma dizini oluşturmak için (muhtemelen Git sıfırlama ile birlikte kullanılabilir) kullanılabilir.
-X
Yalnızca Git tarafından yok sayılan dosyaları silin. Bu, her şeyi sıfırdan kurtarmak, ancak el ile oluşturulan dosyaları kaydetmek için yararlı olabilir.
-n
- kuru
Aslında, hiçbir şeyi silmeyin, ne yapılacağını gösterin.
-d
Ham dosyalara ek olarak gereksiz dizinleri silin. İmzasız bir dizin başka bir Git deposu tarafından yönetiliyorsa, varsayılan olarak silinmez. Böyle bir dizini gerçekten kaldırmak istiyorsanız, -f seçeneğini iki kez kullanın.
Bundan daha önce kimsenin bahsetmediğine şaşırdım:
git clean -i
Bu, etkileşim anlamına gelir ve etkilenen dosyaları dahil etme / dışlama seçeneği sunarak, nelerin kaldırılacağına ilişkin kısa bir genel bakış elde edersiniz. Genel olarak, gerçek temizlikten önce zorunlu -
--dry-run çalışmadan daha hızlıdır.
Boş klasörlerle de ilgilenmek istiyorsanız,
-d atmanız gerekir. Sonunda, iyi bir takma ad veriyor:
git iclean
Bu nedenle, etkileşimli komutların ek manuel uygulaması ileri düzey kullanıcılar için yorulabilir. Bugünlerde sadece belirtilen
git clean -fd
İzlenmeyen dizin kendi git deponuzsa (örneğin, bir alt modül),
-f iki kez kullanmanız gerekir:
git clean -d -f -f
İzlenmeyen dosyaları silmenin kolay yolu
İzlenmemiş tüm dosyaları silmek için, kolay yol ilk önce hepsini eklemek ve aşağıda gösterildiği gibi depoyu sıfırlamaktır .
git add --all git reset --hard HEAD
git stash push -u seviyorum, çünkü hepsini
git stash pop ile iptal edebilirsiniz.
EDIT: Ayrıca önbellekte izlenemeyen bir dosyayı göstermenin bir yolunu buldum (örneğin,
git show stash@{0}^3 ) medican.pw.site/questions/507 / ...
EDIT2:
git stash save
push lehine kaldırılmıştır. Teşekkürler @ script kurt.
Her zaman kullandığım şey bu:
git clean -fdx
Çok büyük bir proje için, birkaç kez çalıştırabilirsiniz.
İmzasız dosyaları belirli bir alt dizinden kaldırmak istiyorsanız,
git clean -f {dir_path}
Ve yeniden üretilemeyen dosyaları / dosyaları ve yok sayılan dosyaları kaldırmanın bir yoludur.
git clean -fxd {dir_path}
Bundan sonra sadece
git status dosyaları değiştirirsiniz.
git clean -fd dizini siler
git clean -fX yok sayılan dosyaları siler
git clean -fX yok sayılan ve yoksayılan dosyaları kaldırır
Yukarıdaki seçeneklerin tümünü bir arada kullanabilirsiniz.
git clean -fdXx
Daha fazla yardım için git kılavuzuna bakın.
Gereksiz tüm klasör ve dosyaları bu repo + alt modüllerde silin
Bu sizi taze bir klonla aynı duruma getirir.
git clean -ffdx
Bu depodaki tüm ek klasörleri ve dosyaları silin, ancak alt modüllerini silin.
git clean -fdx
Yalnızca ekstra klasörleri silin, ancak dosyaları silin (örneğin, derleme klasörü)
git clean -fd
Gereksiz klasörleri + eksik dosyaları silin (ancak yeni dosyaları değil)
Dosya göz ardı edilmediyse ve henüz kaydedilmediyse, kalır. X büyük harfini not edin.
git clean -fdX
Yeni etkileşimli mod
git clean
Tamam, gereksiz izlemeyen dosya ve klasörleri kaldırmak kolaydır, komut satırındaki
git komutunu kullanmak kolaydır;
git clean -fd
Bunu yapmadan önce iki kez kontrol edin , çünkü dosya ve klasörleri tarih yazmadan silecektir ...
Ayrıca bu durumda
-f güç anlamına gelir ve
-d dizin anlamına gelir ...
Yani, sadece dosyaları silmek istiyorsanız, sadece
-f kullanabilirsiniz:
git clean -f
Dosyaları (dizinleri) silmek istiyorsanız, yalnızca izlenmeyen dizinleri ve dosyaları silebilirsiniz, örneğin:
git clean -fd
-x bayrağını, git tarafından göz ardı edilen dosyaları dahil etmek için de kullanabilirsiniz. Her şeyi silmek istiyorsanız bu yararlı olacaktır.
Ve
-i bayrağını eklemek, git halindeyken dosyaları birer birer silmek için izin isteme neden olur.
Emin değilseniz ve önce her şeyi kontrol etmek istiyorsanız,
-n bayrağını ekleyin.
Başarılı bir silme işleminden sonra herhangi bir rapor görmek istemiyorsanız
-q kullanın.
Ayrıca daha unutulmaz yapmak için aşağıdan bir resim oluşturuyorum, özellikle kaç kişinin kafasını karıştırdığını, bir klasörü temizlerken veya bir şekilde kafasını karıştırdığını gördüm!
En iyi kullanılan: git clean
git clean -d -x -f
Bu, dizinler
(-d) ve
git (-x) tarafından yok sayılan dosyalar dahil, gereksiz dosyaları kaldırır.
Ayrıca,
dry-run etkileşimli modunu veya
-i işlevini çalıştırmak için
-f argümanını
-n ile değiştirin, ve neyin kaldırılacağını size söyleyecektir.
Kullanıcı etkileşimli yaklaşımı:
git clean -i -fd Remove .classpath [y/N]? N Remove .gitignore [y/N]? N Remove .project [y/N]? N Remove .settings/ [y/N]? N Remove src/com/arsdumpgenerator/inspector/ [y/N]? y Remove src/com/arsdumpgenerator/manifest/ [y/N]? y Remove src/com/arsdumpgenerator/s3/ [y/N]? y Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y Remove tst/com/arsdumpgenerator/s3/ [y/N]? y
etkileşimli için -i
-f gücü için
-d dizini için
yok sayılan dosyalar için -x (gerekirse ekle)
Not: Ne yapacağını kontrol etmek için -n veya - kuru ekle.
git clean -f -d -x $(git rev-parse --show-cdup) , kök dizin için,
git clean -f -d -x $(git rev-parse --show-cdup) dizin ağacında nereye çağırdığınızdan bağımsız olarak kullanılır. Her zaman kullanıyorum, şu anda çalıştığınız klasörü terk etmeye zorlamıyor ve bulunduğunuz yerden doğru olanı silmenizi ve düzeltmenizi sağlıyor.
-f ,
-d ,
-x bayraklarının ihtiyaçlarınızı
-x emin olun:
-d Remove untracked directories in addition to untracked files. If an untracked directory is managed by a different Git repository, it is not removed by default. Use -f option twice if you really want to remove such a directory. -f, --force If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f, -n or -i. Git will refuse to delete directories with .git sub directory or file unless a second -f is given. This affects also git submodules where the storage area of the removed submodule under .git/modules/ is not removed until -f is given twice. -x Don't use the standard ignore rules read from .gitignore (per directory) and $GIT_DIR/info/exclude, but do still use the ignore rules given with -e options. This allows removing all untracked files, including build products. This can be used (possibly in conjunction with git reset) to create a pristine working directory to test a clean build.
Başka bayraklar da var,
git clean --help .
Sadece 'git status' tarafından kontrol edilmemiş olarak listelenen dosyaları silmek istiyorsanız
git stash save -u git stash drop "stash@{0}"
Bu "git clean" i tercih ediyorum, çünkü "git clean" git tarafından yok sayılan dosyaları kaldıracak, bir sonraki derlemeniz her şeyi yeniden yapmak zorunda kalacak ve IDE ayarlarını da kaybedebilirsiniz.
Böyle bir durum için uygulanabilirlik Yeni icat ettim ve denedim (bu harika çalışıyor):
Dikkat! Bunu yapmadan önce gerekli değişiklikleri (samimiyetsiz dosyalara bile) kopyaladığınızdan emin olun.
git add . git reset --hard HEAD
Asıl kaldırma işleminden önce nelerin silineceğini bulmak için:
git clean -d -n
Gibi bir şey çıkacaktır:
Sample.txt dosyasını kaldırır
Önceki komutun çıktısında listelenen her şeyi kaldırmak için:
git clean -d -f
Gibi bir şey çıkacaktır:
Sample.txt dosyasını kaldır
Kullanılmayan dosyaları silmek için, önce temizleme işleminden etkilenecek dosyaları görüntülemek için bu komutu kullanmanız gerekir.
git clean -fdn
Bu size silinecek dosyaların listesini gösterecektir. Şimdi, aslında bu dosyaları silmek için aşağıdaki komutu kullanın:
git clean -fd
`Git clean 'komutunu çalıştırırken dikkatli olun.
Gerçek komutu çalıştırmadan önce, hangi dosyaların silineceğini gösteren daima
-n tuşunu kullanın .
git clean -n -d git clean -f -d
Varsayılan olarak,
git clean yalnızca göz ardı edilmeyen kullanılmayan dosyaları siler. .Gitignore veya diğer yoksayma dosyalarınızdaki kalıpla eşleşen hiçbir dosya silinmez. Bu dosyaları da silmek istiyorsanız,
-x komutunu temiz bir komuta ekleyebilirsiniz.
git clean -f -d -x
Ayrıca temiz
-i bir
-i etkileşimli modu da vardır.
git clean -x -i
Alternatif olarak,
Bitmemiş işinizi silmenin güvenli olduğundan% 100 emin değilseniz, bunun yerine stashing kullanabilirsiniz.
git stash --all
Ayrıca, dizininizi de temizler, ancak uygun veya pop ile stash kullanarak istediğiniz zaman dosyaları ayıklamak için esneklik verir. Ardından, daha sonra, önbelleğinizi kullanarak şunları temizleyebilirsiniz:
git stash drop // or clean
Aşağıdaki git yorumlarını kullanarak, yerel izlenmeyen dosyaları mevcut git çalışma ağacından kolayca kaldırabiliriz.
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
örnek:
git reset --hard HEAD
referanslar:
komut Komut git ham dosyaları git docs git clean
git clean - bozuk dosyaları çalışma ağacından kaldırın
Önerilen yöntem:
git clean -i ile etkileşime girme modu
git clean -i böylece onu kontrol edebiliriz. kalan mevcut seçeneklere bakın.
Mevcut seçenekler:
git clean -d -f -i -n -q -e -x -X (can use either)
açıklama:
1. -d
Ham dosyalara ek olarak gereksiz dizinleri silin. İmzasız bir dizin başka bir git deposu tarafından yönetiliyorsa, varsayılan olarak silinmez. Böyle bir dizini gerçekten kaldırmak istiyorsanız, -f seçeneğini iki kez kullanın.
2. -f, --force
Git clean.requireForce yapılandırma değişkeni false olarak ayarlanmadıysa, git clean, -f, -n veya -i belirtilmediği sürece başlatmayı reddeder.
3. -i, - etkileşimli
Ne yapılacağını gösterin ve çevrimiçi olarak dosyaları silin. Ayrıntılar için, bkz. "Etkileşimli Mod".
4. -n, - kuru çalıştırma
Aslında, hiçbir şeyi silmeyin, ne yapılacağını gösterin.
5. -q, - sessiz
Sakin olun, sadece hataları bildirin, ancak dosyaları silmeyin.
6. -e, --exclude =
.Gitignore (her dizin için) ve $ GIT_DIR / info / exclude'de bulunanlara ek olarak, bu kalıpları geçerli yoksayma kuralları kümesinde de göz önünde bulundurun.
7. -x
.Gitignore (her dizin için) ve $ GIT_DIR / info / exclude'den okunan standart yoksayma kurallarını kullanmayın, ancak -e seçenekleriyle belirtilen yoksayma kurallarını kullanın. Bu, ürünlerin montajı dahil olmak üzere işlenmemiş tüm dosyaları silmenizi sağlar. Bu, temiz bir yapı olup olmadığını kontrol etmek için el değmemiş bir çalışma dizini oluşturmak için (muhtemelen git reset ile birlikte kullanılabilir) kullanılabilir.
8. -X
Yalnızca Git tarafından yok sayılan dosyaları silin. Bu, her şeyi sıfırdan kurtarmak, ancak el ile oluşturulan dosyaları kaydetmek için yararlı olabilir.
Her zamanki
git clean komutu
git version 2.9.0.windows.1 ile kullanılmayan dosyaları kaldırmaz.
$ git clean -fdx # doesn't remove untracked files $ git clean -fdx * # Append star then it works!
Git deposunu ve tüm alt modülleri yinelemeli olarak temizle
Aşağıdaki komut, geçerli git deposunu ve tüm alt modüllerini yinelemeli olarak temizler:
(git clean -d -x -f git submodule foreach --recursive git clean -d -x -f)
zsh ile oh-my-zsh , bu mükemmel diğer adı git eklentisi ile sağlar. Bash'ta da kullanılabilirler.
gclean='git clean -fd'
gpristine='git reset --hard git clean -dfx'
-
gclean, izlenmeyen dosyalara ek olarak izlenemeyen dizinleri kaldırır.
-
gpristineyerel değişiklikleri sabit bırakır,
gpristinedizinleri, izlemeyen dosyaları kaldırır ve .gitignore (her dizin için) ve $ GIT_DIR / info / exclude'den okunan standart yoksayma kurallarını kullanmaz ancak yine de -e seçeneğiyle ayarlanan yoksaymayı kullanır. Bu, derleme ürünleri de dahil olmak üzere izlenmeyen tüm dosyaları silmenizi sağlar. Bu, temiz bir yapıyı test etmek için birincil çalışma dizini oluşturmak için (muhtemelen git reset ile birlikte) kullanılabilir.
git clean -f
izlenmeyen dosyaları geçerli git'ten kaldırır
git clean -fd
dizinleri ve dosyaları silmek istediğinizde, yalnızca izlenmeyen dizinleri ve dosyaları silecektir.
- 1
- 2
-