Soru Geçerli Git çalışan ağaçtan yerel (izlenmeyen) dosyalar nasıl kaldırılır?


Kullanılmayan yerel dosyaları mevcut çalışan ağacınızdan nasıl silersiniz?


5796
2017-09-14 09:06


Menşei


Bu etkileşimli git hile sayfası ndpsoftware.com/git-cheatsheet.html git çalışma alanını gösterir (google "çalışma alanı" ile "çalışma kopyası" ndan daha iyi sonuçlar verir). - qneill
Not: Yalnızca kaldırmak istiyorsanız bazı izlenmeyen dosyalar, ancak hepsi değil, git clean şimdi bir interaktif modu! Görmek bu soruya cevabım: Git 1.8.4+ - VonC
Şubenin bir başvuruya bir başvuru olduğu ve bu nedenle izlenmeyen dosyaları içermediği için, dosyaları git şubesinden kaldırmayacağınızı unutmayın. Bunlar sadece çalışma dizininde mevcut ve şubelerle ilgisi yok. Muhtemelen sadece terminoloji açıklamasıdır. - Pavel Šimerda
Yeni bir cevap göndermeden önce, bu soru için şimdiden 25'den fazla cevap olduğunu düşünün. Cevabınızın, mevcut cevaplardan olmayanlara katkıda bulunduğundan emin olun. - Sazzad Hissain Khan
Başlatılmamış ve yeni Git - koş git durumunun anlaşılmasını açıklığa kavuşturmak ve bir dosyayı izlenmemiş olarak gösterirse ve bu dosyayı repoda istemiyorsanız, dosya sisteminize gidip silebilir veya taşıyabilirsiniz. . Bu, yerel repo ya da Git için kötü bir şey yapmayacaktır. Ayrıca kullanabilirsiniz git clean ya da sadece seçmeli dosyaları silmek için etkileşimli sürümü de dahil olmak üzere aşağıdaki cevaplarda bazı değişiklikler, ancak etkileşimli mod can sıkıcı olabilir. Ne yaparsanız yapın, neyi anladığınızdan emin olun. git clean silecek veya kullanacak --dry-run bir şey silmeden sana söylemesini sağlamak. - LightCC


Cevaplar:


Git Dokümantasyonuna göre git temiz

Çalışan ağaçtan izlenmeyen dosyaları kaldırın


1. adım, neyi kullanarak silineceğini göstermektir. -n seçeneği:

git clean -n

Temiz Adım - Dikkat: Bu dosyaları siler:

git clean -f
  • Dizinleri kaldırmak için git clean -f -d veya git clean -fd
  • Yok 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

Not durum farkı X son iki komut için.

Eğer clean.requireForce yapılandırmanızda "doğru" (varsayılan) olarak ayarlanmış, biri belirtilmelidir -f aksi halde hiçbir şey gerçekleşmeyecek.

Tekrar görmek git-clean Daha fazla bilgi için dokümanlar.

Seçenekler

-f

--Kuvvet

Git yapılandırma değişkeni clean.requireForce false değerine ayarlanmadıysa, git clean, -f, -n veya -i belirtilmemişse, çalışmayı reddeder.

-x

.Gitignore (dizin başına) ve $ GIT_DIR / info / exclude öğelerinden okunan standart göz ardı etme kurallarını kullanmayın, ancak yine de -e seçenekleriyle verilen göz ardı etme kurallarını kullanın. Bu, yapım ürünleri dahil olmak üzere, tüm izlenmeyen dosyaların kaldırılmasına izin verir. Bu, temiz bir yapıyı test etmek için bozulmamış bir çalışma dizini oluşturmak için kullanılabilir (muhtemelen git sıfırlama ile birlikte).

-X

Yalnızca Git tarafından yok sayılan dosyaları kaldırın. Bu, her şeyi sıfırdan yeniden oluşturmak için yararlı olabilir, ancak elle oluşturulmuş dosyaları saklayın.

-n

--dry işletilen

Aslında hiçbir şeyi kaldırma, sadece ne yapılacağını göster.

-d

İzlenmeyen dosyalara ek olarak, izlenmeyen dizinleri de kaldırın. İzlenmeyen bir dizin farklı bir Git deposu tarafından yönetiliyorsa, varsayılan olarak kaldırılmaz. Böyle bir dizini gerçekten kaldırmak istiyorsanız -f seçeneğini iki kez kullanın.


7613
2018-05-26 20:59



git clean -f sadece çağrıldığı dizinde çalışır (ve alt dizinler). Tüm çalışma kopyasını temizlemek istiyorsanız, kök dizininde onu çağırmalısınız. - Eduardo Bezerra
Ayrıca .gitignore içindeki tüm dosyaları da kaldırıyor. Sadece yeni olan ve olmayan dosyaları / klasörleri silmem gerekir. - Kostanos
@Kostanos .gitignore içindeki dosyaları kaldırmak istemiyorsanız, o zaman -x işaretini vermeyin. - Lo-Tan
git clean -f :/ root repo dizininde çalıştırmış gibi çalışır. Ayrıca daha sonra, alt modüllerin git clean -ffxd :/ - here
@Michelle git clean -xfd Ayrıca, TÜM DOSYALARINIZI GÜNCELLEŞTİRMEK ÜZERİNDE KALDIRILACAKTIR. - thedanotto


kullanım git clean -f -d emin olmak için dizinleri ayrıca kaldırılır.

Dosyalarınızın gerçekten gitmiş olup olmadığını kontrol edebilirsiniz. git status.


817
2017-12-30 20:12



Daha önce belirtildiği gibi, kuru çalıştırmak için iyi git clean -n -d - Ms01
Aynı şey yapmak git clean -nd ve git clean -fd. - Micer


Hiç kimsenin bundan daha önce bahsetmediğine şaşırdım:

git clean -i

Bu demektir interaktif ve etkilenen dosyaları dahil etme / hariç tutma olasılığını sunan nelerin silineceğine dair hızlı bir genel bakış elde edersiniz. Genel olarak, zorunlu koşmaktan daha hızlı --dry-run gerçek temizlikten önce.

İçine atmak zorundasın -d Ayrıca boş klasörlere bakmak isterseniz. Sonunda, güzel bir takma isim yapar:

git iclean

Bu söylenen, interaktif komutların ekstra el tutma tecrübeli kullanıcılar için yorucu olabilir. Bu günlerde daha önce bahsettiğim git clean -fd 


397
2017-09-14 09:09



var: hata: bilinmeyen anahtar "i" - pal4life
@ pal4life 1.8.4'de eklendi, git'in eski bir sürümünü kullanıyor olabilirsiniz? github.com/git/git/blob/master/Documentation/RelNotes/1.8.4.txt - Mattias Backman
@SystematicFrank, Takma ad kullanma, onlar gerçekten 1 kişinin ötesinde ölçek yok .... - Pacerier


git-clean - Çalışmayan ağaçtan izlenmeyen dosyaları kaldırın


387
2018-01-25 12:24





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

git clean -d -f -f


200
2018-06-03 12:16



Btw, bu yazılır belgeleme : Git, ikinci bir f belirtilmemişse .git alt dizini veya dosya ile dizinleri silmeyi reddeder. Yinede teşekkürler! - Maxim Suslov


Untracked dosyaları kaldırmak için basit bir yol

Tüm programlanmamış dosyaları kaldırmak için, Basit   yolu hepsini önce ekle ve repo'yu sıfırlaaşağıda olduğu gibi

git add --all
git reset --hard HEAD


145
2018-01-11 00:41



Değiştirebilirsiniz git add --all tarafından git add .. Böylece bunu daha kısa bir yolla yapabilirsiniz. git add . && git reset --hard HEAD  (olmak çok bu komutla dikkatli olun). - RousseauAlexandre
Bunu neden kullanmalıyım? git clean? - user2864740
Çünkü git clean Görünüşe göre göz ardı edilen her şeyi de siler. Az önce benim silinmiş node_modules Klasör. Bunu yapmak, önce yok sayılanlar dışındaki tüm dosyaları düzenler ve ardından sıfırlama yaparak bunları siler. Yok sayılan dosyalara dokunulmaz. - Andreas
@Andreas benim için yok sayılan dosyaları silmez (git 2.14.1). Koşmalısın git clean -n gerçek silinmeden önce neyse (veya git clean -i). - Qw3ry
git clean yok sayılan dosyaları yalnızca siz -x veya -X seçenek, aksi halde sadece izlenemeyen dosyaları siler. - doubleDown


severim git stash save -u çünkü hepsini geri alabilirsin git stash pop.

DÜZENLEME: Ayrıca, bir stash içinde izlenmeyen dosyayı göstermenin bir yolunu buldum (ör. git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986


118
2017-11-25 14:16



- Stash'ı açıklayabilir misin? Bunun, git stash tasarrufundan farklı şekilde nasıl çalıştığını takip etmiyorum. Bunu denedim ve işe yaradı. Git docs baktı ve orada da bulamadı. - Winnemucca
-u eşdeğerdir --include-untracked. İle bir yardım bulabilirsiniz git help stash. - hiroshi
@hiroshi Teşekkürler! Bir düzine farklı insandan her şeytani çözümü denedikten sonra, sonunda işe yarayan ... budur! Bir go stash bile nada yaptı. Tasarrufu halletmemişti. sert / temiz gücü sıfırla / vb. bunların hiçbiri benim için bir şey yapmadı. - killjoy


Her zaman kullandığım şey bu:

git clean -fdx

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


92
2017-09-14 09:08



Büyük projeler hakkında bir açıklama yapabilir misiniz? - Martin
@Martin Üzerinde çalıştığım projelerden biri +8 yaşından büyük +80 geliştiriciyle aktif olarak kodlanıyor. Git bazen ilk geçişte temizlemek için başarısız olur. - Oscar Fraxedas


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


83
2017-09-24 06:28



önceki gibi aynı yorum: linux.die.net/man/1/git-clean - dlewin