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?

6113
14 сент. Sadece 14 Eylül ayarlandı. 2008-09-14 12:06 '08, 12:06, 2008-09-14 12:06
@ 36 cevaplar
  • 1
  • 2

Git'e göre temiz belgeler

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 -fd veya git clean -fd
  • git clean -fX sayılan dosyaları kaldırmak için git clean -f -X veya git clean -fX
  • Yok sayılan ve yok sayılan dosyaları kaldırmak için git clean -f -X veya 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.

Daha fazla bilgi için git-clean belgelerine tekrar göz git-clean .

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.

7973
15 сент. Tarafından cevap Andreas Ericsson 15 Eyl 2008-09-15 20:32 '08, 08:32, 2008-09-15 20:32

Dizinlerin de silindiğinden emin olmak için git clean -f -d kullanın.

border=0

Ardından dosyalarınızın gerçekten git status olup olmadığını kontrol edebilirsiniz.

866
26 мая '09 в 23:59 2009-05-26 23:59 cevabı robert.berger tarafından 26 Mayıs 099 'da 23:59' da verildi 2009-05-26 23:59

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

427
30 дек. Cevap 30 Aralık SystematicFrank tarafından verilmiştir. 2013-12-30 23:12 '14, 11:12 2013-12-30 23:12
388
14 сент. Cevap 14 Eylül'de Fire Lancer tarafından verildi . 2008-09-14 12:09 '08, 12:09 2008-09-14 12:09

İzlenmeyen dizin kendi git deponuzsa (örneğin, bir alt modül), -f iki kez kullanmanız gerekir:

git clean -d -f -f

213
25 янв. Cevap Cevapla Michał Szajbe 25 Oca tarihinde 2013-01-25 15:24 '13, 15:24 2013-01-25 15:24

İ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 

156
03 июня '16 в 15:16 2016-06-03 15:16 Cevap Thanga tarafından 03 Haziran 'da 15 : 16'da verilmiştir 2016-06-03 15:16

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.

121
11 янв. Hiroshi yanıtladı 11 Ocak 2014-01-11 03:41 '14, 03:41 2014-01-11 03:41

Her zaman kullandığım şey bu:

 git clean -fdx 

Çok büyük bir proje için, birkaç kez çalıştırabilirsiniz.

98
25 нояб. Cevap 25 Kasım'da Oscar Fraxedas tarafından verildi. 2013-11-25 17:16 '13, 17:16 2013-11-25 17:16

git-clean , aradığınız şey. İşlenmemiş dosyaları çalışma ağacından kaldırmak için kullanılır.

83
14 сент. Cevap Espo'ya 14 Eylül'de verildi. 2008-09-14 12:08 '08, 12:08 2008-09-14 12:08

İ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.

73
24 сент. Cevap Vijay C 24 Eylül. 2013-09-24 09:28 '13, 09:28 2013-09-24 09:28

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.

48
22 янв. Cevap Pooja 22 Ocak verilir 2015-01-22 09:33 '15 9:33 2015-01-22 09:33

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 
37
12 февр. Cevap Shital Shah tarafından 12 Şubat'ta verildi . 2017-02-12 11:33 '17 11:33 2017-02-12 11:33

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!


2019

20 июля '17 в 19:42 2017-07-20 19:42 Cevap Alireza tarafından 20 Temmuz 17'de 19:42 2017-07-20 19:42 tarihinde verilmiştir.

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.

32
16 апр. Cevap Chhabilal 16 nisan verildi . 2015-04-16 09:49 '15 9:49 2015-04-16 09:49

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.

20
02 марта '17 в 23:09 2017-03-02 23:09 Cevap bit_cracker007 Mart 02 '17 'de 23:09 2017-03-02 23:09

Benim için, sadece işten sonra:

 git clean -ffdx 

Diğer tüm durumlarda, bazı alt dizinler için "Dizini Atlama" mesajını aldım.

15
16 авг. Cevap rahul286 16 ağustos ayında verilmiştir . 2016-08-16 18:29 '16, 18:29, 2016-08-16 18:29

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 .

15
02 дек. Cevap Yazan Nikita Leonov 02 Ara 2015-12-02 20:57 '15 20:57, 2015-12-02 20:57

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.

13
02 марта '16 в 5:09 2016-03-02 05:09 Cevap jazzdev 02 Mart '16 'de 5:09 2016-03-02 05:09

Böyle bir durum için uygulanabilirlik Yeni icat ettim ve denedim (bu harika çalışıyor):

 git add . git reset --hard HEAD 
Dikkat! Bunu yapmadan önce gerekli değişiklikleri (samimiyetsiz dosyalara bile) kopyaladığınızdan emin olun.
13
21 февр. Cevap 21 Şubat'ta Thybzi'ye verildi. 2016-02-21 20:29 '16, 20:29, 2016-02-21 20:29

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

10
16 февр. Cevap 16 Şubat'ta Omar Mowafi tarafından verildi. 2016-02-16 11:42 '16, 11:42 2016-02-16 11:42

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 
8
25 окт. Gaurav 25 Ekim tarafından verilen cevap . 2016-10-25 12:09 '16, 12:09, 2016-10-25 12:09

Birisi gerçekten bahsetmeli:

 git clean [<options>] 

Haklı mıyım

7
27 авг. Cevap joeytwiddle tarafından verildi 27 Ağustos. 2015-08-27 13:18 '15, 13:18, 2015-08-27 13:18

`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 
6
22 окт. Cevap DevWL 22 Ekim. 2017-10-22 00:44 '17, 0:44 2017-10-22 00:44

git clean -f to remove untracked files from working directory.

Buradaki bazı temel bilgileri blogumda git-intro-basic-command

5
16 февр. cevap ysk 16 feb verilir . 2017-02-16 12:05 '17, 12:05 2017-02-16 12:05

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:

  1. https://git-scm.com/docs/git-reset
  2. Önceki işleme geri dönmek için 'git reset --hard HEAD' kullanabilirim?
  3. Yerel depo şubesini, uzak depo HEAD'sine benzeyecek şekilde sıfırlayın
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html
5

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.

01 сент. Tarafından cevap Mohideen ibn Mohammed tarafından 01 Eylül tarihinde verilen 2017-09-01 09:23 '17, 09:23, 2017-09-01 09:23

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! 
5
11 окт. Cevap kujiy 11 ekim. 2016-10-11 03:14 '16, 03:14 2016-10-11 03:14

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) 
3
25 сент. Cevap Sergey 25 Eylül. 2017-09-25 19:25 '17, 19:25, 2017-09-25 19:25

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.
  • gpristine yerel değişiklikleri sabit bırakır, gpristine dizinleri, 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.
3
02 нояб. Cevap ZenLulz 02 Kasım'da verildi. 2017-11-02 11:24 '17, 11:24 2017-11-02 11:24
 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
18 мая '18 в 9:04 2018-05-18 09:04 Cevap Sudhir Vishwakarma tarafından 18 Mayıs 18'de 9:04 2018-05-18 09:04 tarihinde verilmiştir.
  • 1
  • 2

ya da Soru Sor ile ilgili diğer sorular