Geçerli Git çalışma ağacından yerel (izlenmemiş) dosyalar nasıl kaldırılır


6841

İzlenmeyen yerel dosyaları geçerli çalışma ağacınızdan nasıl silebilirsiniz?


86
Bu interaktif git hile sayfası ndpsoftware.com/git-cheatsheet.html git çalışma alanını gösterir (google size "çalışma alanı" ile "çalışma kopyası" ndan daha iyi sonuçlar verir).
qneill

28
Not: Yalnızca kaldırmak istiyorsanız bazı ama, izlenmeyen dosyaları hepsini değil , git cleanşimdi bir sahip interaktif mod! Bu diğer soruya cevabımı gör : git 1.8.4+
VonC

17
Git bir dal için bir başvuru olduğundan ve bu nedenle izlenmemiş dosyalar içermediğinden, git dalından dosyaları kaldırmayacağınızı unutmayın. Bunlar sadece çalışma dizininde bulunur ve dallarla hiçbir ilgisi yoktur. Muhtemelen bu sadece terminoloji açıklamasıdır.
Pavel Šimerda

6
Başlatılmamış ve Git için yeni olanları anlamak için - git durumunu çalıştırın ve bir dosyayı izlenmemiş olarak gösteriyorsa ve bu dosyayı depoda istemiyorsanız, dosya sisteminize gidip silebilir veya taşıyabilirsiniz. . Bu, yerel repo veya Git için kötü bir şey yapmaz. Ayrıca git clean, yalnızca seçici dosyaları silmek için etkileşimli sürüm de dahil olmak üzere aşağıdaki yanıtlarda veya bazı varyasyonları kullanabilirsiniz , ancak etkileşimli mod sıkıcı olabilir. Ne yaparsanız yapın, hiçbir şeyi silmeden size neyin git cleansileceğini veya kullanacağını anladığınızdan emin olun --dry-run.
LightCC

4
Dosyalar henüz izlenmiyorsa, git olmadan onları kaldıramaz mıydınız? rm files-to-be-deleted
mhatch

Yanıtlar:


8732

git-clean - İzlenmeyen dosyaları çalışma ağacından kaldır

özet

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

Açıklama

Geçerli dizinden başlayarak sürüm denetimi altında olmayan dosyaları yinelemeli olarak kaldırarak çalışma ağacını temizler .

Normalde, yalnızca Git tarafından bilinmeyen dosyalar kaldırılır, ancak -xseçenek belirtilirse yok sayılan dosyalar da kaldırılır. Bu, örneğin, tüm yapı ürünlerini kaldırmak için yararlı olabilir.

İsteğe bağlı <path>...bağımsız değişkenler verilirse, yalnızca bu yollar etkilenir.


Adım 1, -nseçenek kullanılarak nelerin silineceğini göstermektir :

# Print out the list of files which will be removed (dry run)
git clean -n

Temiz Adım - dikkat: bu dosyaları siler :

# Delete the files from the repository
git clean -f
  • Dizinleri kaldırmak için git clean -f -dveyagit clean -fd
  • Yok sayılan dosyaları kaldırmak için git clean -f -Xveyagit clean -fX
  • Yok sayılan ve yok sayılan dosyaları kaldırmak için git clean -f -xveyagit clean -fx

Not üzerinde vaka farkı Xiki ikincisi komutlar için.

Eğer clean.requireForceYapılandırmanızda "true" (varsayılan) olarak ayarlandığında, bir ihtiyacı belirtmek için -fyaptıkları gerçekleşecek aksi bir şey.

Daha git-cleanfazla bilgi için dokümana tekrar bakın .


Seçenekler

-f, --force

Git yapılandırma değişkeni clean.requireForce false olarak ayarlanırsa değilse, git temiz verilen yürütülmeye reddeder -f, -nya da -i.

-x

.Gitignore'dan (dizin başına) okunan standart yoksayma kurallarını $GIT_DIR/info/excludekullanmayın ve yine de -eseçeneklerle birlikte verilen yoksayma kurallarını kullanın . Bu, yapı ürünleri de dahil olmak üzere izlenmeyen tüm dosyaların kaldırılmasını sağlar. Bu, temiz bir yapıyı test etmek için bozulmamış bir çalışma dizini oluşturmak için (muhtemelen git reset ile birlikte) kullanılabilir.

-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 manuel olarak oluşturulan dosyaları saklayın.

-n, --dry-run

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

-d

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


288
git clean -fyalnızca çağrıldığı dizinde (ve alt dizinlerde) çalışır. Tüm çalışan kopyayı temizlemek istiyorsanız, kök dizininde çağırmalısınız.
Eduardo Bezerra

17
Ayrıca .gitignore içindeki tüm dosyaları kaldırıyor. Ben sadece dosyaları yeni değil .gitignore içindedir / klasörleri silmeniz gerekir
Kostanos

24
@Kostanos .gitignore içindeki dosyaları kaldırmak istemiyorsanız, -x bayrağını vermeyin.
Lo-Tan

52
git clean -f :/Kök repo dizininde çalıştırmış gibi çalışır. Ayrıca bkz. Daha sonra cevaplar da ile alt modülleri muhasebegit clean -ffxd :/
burada

18
@Michelle ayrıca tüm dosyaları kaldıracak temiz -xfd ANDA IGNORED git'e İÇİNDE SİZİN .gitignore ve onların geri kazanılabilir değildir
thedanotto

986

Dizinlerin de kaldırıldığından git clean -f -demin olmak için kullanın .

  1. Aslında hiçbir şeyi kaldırmayın, sadece ne yapılacağını gösterin.

    git clean -n
    

    veya

    git clean --dry-run
    
  2. İzlenmemiş dosyalara ek olarak izlenmeyen dizinleri kaldırın. İzlenmeyen bir dizin farklı bir Git deposu tarafından yönetiliyorsa, varsayılan olarak kaldırılmaz. -fBöyle bir dizini gerçekten kaldırmak istiyorsanız seçeneği iki kez kullanın .

    git clean -fd
    

Daha sonra dosyalarınızın gerçekten geçip geçmediğini kontrol edebilirsiniz git status.


115
Daha önce belirtildiği gibi, kuru çalıştırılması iyigit clean -n -d
Ms01

15
Aynı şey yapmak git clean -ndve git clean -fd.
Micer

478

Kimsenin bundan önce bahsetmediğine şaşırdım:

git clean -i

Bu etkileşimli anlamına gelir ve etkilenen dosyaları dahil etme / hariç tutma imkanı sunan silineceklere hızlı bir genel bakış elde edersiniz. Genel olarak, --dry-rungerçek temizlikten önce zorunlu çalıştırmadan daha hızlı .

Bir de atmak zorunda kalacak -dayrıca boş klasörler bakmak istiyorum. Sonunda, güzel bir takma ad yapar:

git iclean

Bununla birlikte, etkileşimli komutların ekstra elle tutulması deneyimli kullanıcılar için yorucu olabilir. Bu günlerde daha önce bahsedilengit clean -fd


16
@ pal4life 1.8.4'te 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

Bunu beğendim - bash geçmişimde diğer seçeneklerden daha rahatım, çünkü yanlışlıkla ctrl-r veya ctrl-p yaparsam önemli değil.
csvoss

O olabilir git clean -içalışma kopyasını kökünden denilen yalnızca çalışır?
Alessandro Jacopson


250

İzlenmeyen dizin kendine ait bir git deposuysa (örn. Alt modül), -fiki kez kullanmanız gerekir :

git clean -d -f -f


4
BTW, bu belgelere yazılmıştır : Git, ikinci bir f belirtilmezse, .git alt dizini veya dosyası olan dizinleri silmeyi reddeder. Yinede teşekkürler!
Maxim Suslov

248

İzlenmemiş dosyaları kaldırmanın basit yolu

Tüm izlenmeyen dosyaları kaldırmak için, basit bir şekilde etmektir ilk hepsini ekleyin ve repo reset aşağıdaki gibi

git add --all
git reset --hard HEAD


8
Sen değiştirebilirsiniz git add --alltarafından git add .. Böylece oneline'da daha kısa bir şekilde yapabilirsiniz git add . && git reset --hard HEAD ( bu komutla çok dikkatli olun) .
RousseauAlexandre

22
Bunu neden kullanmalıyım git clean?
user2864740

8
Çünkü git cleangörünüşte yok sayılan her şeyi siler. Sadece node_modulesklasörümü sildi . Bunu yapmak, önce yok sayılanlar dışındaki tüm dosyaları aşamalıp, sıfırlama yaparak siler. Yok sayılan dosyalara dokunulmaz.
Andreas

5
@Yaydırılan dosyaları benim için silmez (git 2.14.1). Gerçek silme işlemini (veya kullanımı ) yapmadan önce yine de çalıştırmalısınızgit clean -ngit clean -i .
Qw3ry

8
git cleanyok sayılan dosyaları yalnızca -xveya -Xseçeneğini kullanırsanız siler, aksi takdirde izlenmeyen dosyaları siler.
doubleDown

140

Seviyorum git stash push -uçünkü hepsini geri alabilirsiniz git stash pop.

DÜZENLEME: Ayrıca izsiz bir dosyayı bir zulasında göstermek için bir yol buldum (örneğin git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986

EDIT2: git stash savelehine kullanımdan kaldırıldı push. Teşekkürler @ script-wolf.


3
Zuladaki -u'yu açıklayabilir misiniz? Ben git stash save farklı çalışır nasıl takip etmiyorum. Bunu denedim ve işe yaradı. Git belgelerine baktım ve orada da bulamadım.
Winnemucca

9
-ueşittir --include-untracked. İle ilgili yardım bulabilirsiniz git help stash.
hiroshi

3
@hiroshi Teşekkürler! bir düzine farklı insandan her darn çözümünü denedikten sonra nihayet işe yaradı ... vay! Git bir zulası bile nada yaptı. Save - u izlenmemiş ile ilgileniyordu. sıfırlama sert / temiz kuvvet / vb bunların hiçbiri benim için bir şey yapmadı.
killjoy

3
saveSeçeneği lehine kaldırıldı pushaynı ama fazlasını yapar. Buradan daha fazla bilgi edinebilirsiniz, /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952
Senaryo Kurt

120

Her zaman kullandığım şey bu:

git clean -fdx

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


@Martin Üzerinde çalıştığım projelerden biri + 8 yaşında ve +80 geliştirici aktif olarak kod yazıyor. Git bazen ilk geçişte temizleyemez.
Oscar Fraxedas

1
Bunu teyit edebilirim, bu yüzden 2020'de hala geçerli. Büyük bir proje üzerinde de çalışıyoruz ve GIT silinecek başka dosya bulana kadar 4-5 kez çalıştırmak zorunda kaldım.
turbolocust

90

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


86

İzlenmeyen dosyaları belirli alt dizinden kaldırmak için gerekirse,

git clean -f {dir_path}

Ve izlenmemiş dir / dosyaları ve yok sayılan dosyaları silmek için kombine yol.

git clean -fxd {dir_path}

Bundan sonra dosyaları yalnızca içinde değiştirmiş olacaksınız git status.


68

Bu repo + alt modüllerindeki tüm ekstra klasörleri ve dosyaları kaldırın

Bu sizi taze klonla aynı duruma getirir.

git clean -ffdx

Bu repodaki tüm ekstra klasör ve dosyaları kaldırın, ancak alt modüllerini kaldırmayın

git clean -fdx

Ek klasörleri kaldırın, ancak dosyaları kaldırın (ör. Derleme veya günlükler klasörü)

git clean -fd

Ek klasörleri + yok ​​sayılan dosyaları (ancak yeni eklenen dosyaları değil) kaldırın

Dosya yoksayılmış ve henüz teslim edilmemişse, kalır. Başkent X'e dikkat edin.

git clean -fdX

Yeni etkileşimli mod

git clean

57

git clean -fd dizini kaldırır

git clean -fX yok sayılan dosyaları kaldırır

git clean -fx yok sayılan ve yok sayılan dosyaları kaldırır

yukarıdaki tüm seçenekleri kombinasyon halinde kullanılabilir

git clean -fdXx

daha fazla yardım için git kılavuzuna bakın


10
Komut "fatal: -x ve -X birlikte kullanılamaz"git clean -fdXx hata mesajını üretir (git-2.8 kullanarak). Cevabınızdaki son cümleniz için lütfen git manual'a bir link verin. Şerefe
olibre

iki komutu sırayla çalıştırın: git clean -fdX, git clean -fdx
Saat ZHONG

55

Tamam, istenmeyen izlenmemiş dosya ve klasörleri silmek gitkomut satırında kullanımı kolaydır , sadece şu şekilde yapın:

git clean -fd

Dosya ve klasörleri geçmişe gerek kalmadan sileceğinden, yapmadan önce iki kez kontrol edin ...

Ayrıca bu durumda, -fkuvvet -danlamına gelir ve dizin anlamına gelir ...

Bu nedenle, yalnızca dosyaları silmek istiyorsanız, -fyalnızca şunları kullanabilirsiniz :

git clean -f

İsterseniz silin (dizinleri) ve dosyaları, böyle sadece izlenmeyen dizinleri ve dosyaları silebilirsiniz:

git clean -fd

Ayrıca -xgit tarafından yok sayılan dosyaları dahil etmek için flag'i kullanabilirsiniz. Her şeyi silmek istiyorsanız bu yararlı olacaktır.

Ve -ibayrak ekleyerek git, hareket halindeyken dosyaları tek tek silmek için izin istemenizi sağlar.

Emin değilseniz ve önce bir şeyleri kontrol etmek istiyorsanız, -nbayrak ekleyin .

Kullanım -qBaşarılı silme işleminden sonra herhangi bir rapor görmek istemiyorsanız.

Ayrıca daha unutulmaz kılmak için aşağıdaki görüntüyü oluşturuyorum, özellikle birçok insanın -fbazen klasör temizliği için karıştırdığını veya bir şekilde karıştırdığını gördüm !


izlenmeyen istenmeyen dosya ve klasörleri silme


Bu görüntüde ne var?
Pacerier

37

Kullanmanın daha iyi bir yolu: git clean

git clean -d -x -f

Bu, dizinler (-d)ve tarafından göz ardı edilen dosyalar da dahil olmak üzere izlenmeyen dosyaları kaldırır git (-x).

Ayrıca, bir veya etkileşimli mod gerçekleştirmek için -fargümanı değiştirin ve neyin kaldırılacağını size söyleyecektir.-ndry-run-i


25

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

-i etkileşimli için
-f kuvvet için
-d dizin için -d
yok sayılan dosyalar için (gerekirse ekleyin)

Not: Yalnızca ne yapacağını denetlemek için -n veya --dry-run ekleyin .


20

Sadece icat ettiğim ve denediğim böyle bir durum için bir cankurtaran (mükemmel çalışıyor):

git add .
git reset --hard HEAD

Dikkat! Bunu yapmadan önce gerekli değişiklikleri (izlenemeyen dosyalarda bile) yaptığınızdan emin olun .


3
En azından bu farklı bir yaklaşım. :) Başka bir yol, bu reflog silinmiş dosyaları hatırlıyorum ama herhangi bir şubede değil, olacaktır:git add . git commit -m 'about to delete' git reset --hard HEAD~
joeytwiddle

2
daha da hızlı bir yolgit add . && git reset --hard HEAD
thybzi

3
git add . && git reset --hard
Pleymor

Taahhüt etmek istediğiniz değişiklikler varsa, bu istediğiniz şey olmayabilir.
lacostenycoder

@AlexanderMills, taahhüt edilmemiş git reset --hardtüm değişiklikleri sıfırlar, ancak UNUTACKED FILES en son taahhüdün durumuna geri döner. Bu yüzden ilk ihtiyacımız var git add .- tüm izlenmemiş dosyaları aşamalandırır (bu yüzden de sıfırlanırlar)
thybzi

19

git clean -f -d -x $(git rev-parse --show-cdup)depo dizin ağacında nereden çağırırsanız arayın kök dizini temizler. Sizi şu anda çalıştığınız klasörü bırakmaya zorlamadığı ve bulunduğunuz yerden temizlemenize ve taahhüt etmenize izin vermediği için her zaman kullanıyorum.

Bayraklar emin olun -f, -d, -xihtiyaçlarınızı maç:

-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, sadece kontrol edin git clean --help.


BTW sadece git clean {flags}: / komutunu yapabilirsiniz, böylece komutu repo kökünde çalıştırmış gibi olacaksınız
The-null-Pointer-

19

Benim için sadece aşağıdaki çalıştı:

git clean -ffdx

Diğer tüm durumlarda, bazı alt dizinler için "Dizin Atlanıyor" mesajı alıyordum .


2
Teşekkürler. Dışarıda kaldım -xve sadece git clean -ffd.gitignore'deki dosyaları silmekten kaçındım.
Feckmore

15

'Git status' tarafından izlenmeyen olarak silmek istediğiniz dosyaları silmek istiyorsanız

git stash save -u
git stash drop "stash@{0}"

Bunu 'git clean' için tercih ediyorum çünkü 'git clean' git tarafından yok sayılan dosyaları silecek, böylece bir sonraki derlemeniz her şeyi yeniden oluşturmak zorunda kalacak ve IDE ayarlarınızı da kaybedebilirsiniz.


3
Bu, izlenen dosyalarda geçerli değişiklikleri de kaldıracaktır. Ben tavsiye etmem.
code_dredd

2
Evet, önce izlenen dosyalarda değişiklik yapmak istersiniz.
jazzdev

14

Gerçekten silmeden önce nelerin silineceğini bilmek için:

git clean -d -n

Bunun gibi bir çıktı verecektir:

Sample.txt kaldırılır

Önceki komutun çıktısında listelenen her şeyi silmek için:

git clean -d -f

Bunun gibi bir çıktı verecektir:

Sample.txt kaldırılıyor


11

İzlenmeyen dosyaları kaldırmak için önce temizlemeden etkilenecek dosyaları görüntüleme komutunu kullanmalısınız

git clean -fdn

Bu size silinecek dosyaların listesini gösterecektir. Şimdi bu dosyaları gerçekten silmek için şu komutu kullanın:

git clean -fd

11

`Git clean` komutunu çalıştırırken dikkatli olun.

-nHangi komutu kaldırılacağını size göstereceğinden, gerçek komutu çalıştırmadan önce daima kullanın .

git clean -n -d 
git clean -f -d

Varsayılan olarak, git cleanyalnızca göz ardı edilmeyen izlenmemiş dosyaları kaldırır. .Gitignore veya diğer yok sayılan dosyalarınızdaki bir kalıpla eşleşen hiçbir dosya kaldırılmaz. Bu dosyaları da kaldırmak istiyorsanız -x, clean komutuna bir ekleyebilirsiniz .

git clean -f -d -x

-iClean komutuyla etkileşimli mod da mevcuttur

git clean -x -i

alternatif olarak

Taahhütsüz çalışmanızı silmenin güvenli olduğundan% 100 emin değilseniz, bunun yerine saklamayı kullanabilirsiniz

git stash --all

Ayrıca dizininizi temizler, ancak uygulama veya pop ile stash kullanarak dosyaları istediğiniz zaman alma esnekliği sağlar . Daha sonra daha sonra zulayı temizleyebilirsiniz:

git stash drop // or clean

2
saklamak iyi bir fikir, ancak kullanmak isteyebilirsinizgit stash save and type some comment as to what this stash was for
lacostenycoder


9

için kilindeki Komut git dokümanlardan İzlenmeyen Files Çıkarma olduğu git temiz

git clean - İzlenmeyen dosyaları çalışma ağacından kaldır

Önerilen Yöntem: İnteraktif Mod'u kullanarak git clean -i kontrol edebiliriz. kalan kullanılabilir seçenekleri görelim.

Mevcut seçenekler:

git clean 
    -d -f -i -n -q -e -x -X (can use either)

Açıklama:

1. -d

İzlenmemiş dosyalara ek olarak izlenmeyen dizinleri 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.

2. -f, --force

Git yapılandırma değişkeni clean.requireForce öğesi false değerine ayarlanmazsa, git clean -f, -n veya -i verilmedikçe çalışmayı reddeder.

3. -i, - etkileşimli

Ne yapılacağını gösterin ve dosyaları etkileşimli olarak temizleyin. Ayrıntılar için “Etkileşimli mod” a bakın.

4. -n, - kuru çalışma

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

5. -q, - sessiz

Sessiz olun, yalnızca hataları bildirin, ancak başarıyla kaldırılan dosyaları değil.

6. -e, --exclude =

.Gitignore (dizin başına) ve $ GIT_DIR / info / exclude içinde bulunanlara ek olarak, bu kalıpların yürürlükteki yoksayma kuralları kümesinde olduğunu düşünün.

7. -x

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

8. -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 manuel olarak oluşturulan dosyaları saklayın.


Bence bir yazım hatası var uggestedama bu sadece bir " uggestionlol
lacostenycoder

8

Normal git cleankomut izlenmeyen dosyaları my ile kaldırmaz git version 2.9.0.windows.1.

$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!

7

Aşağıdaki git yorumlarını kullanarak yerel gitmeyen dosyaları geçerli git çalışma ağacından kolayca kaldırabiliriz.

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

Misal:

git reset --hard HEAD

Bağlantılar:

  1. https://git-scm.com/docs/git-reset
  2. Önceki bir işleme geri dönmek için 'git reset --hard HEAD' ı nasıl kullanabilirim?
  3. Yerel veri havuzu dalını tıpkı uzak depo kafası gibi sıfırlayın
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

Bu aynı zamanda yalnızca izlenmeyen dosyalar için değil, istediğiniz gibi olmayan taahhüt için yapılan değişiklikleri de kaldıracaktır.
raspy

Çalışmıyor: bazı dosyalar bırakıyor. git clean -ffdxçözüm
Eugene Gr. Philippov

7

Git deposunu ve tüm alt modülleri yinelemeli olarak temizleyin

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)

elbette bu çok dikkatli kullanılmalıdır
lacostenycoder

6
git clean -f

izlenmeyen dosyaları geçerli git'ten kaldıracak

git clean -fd

dizinleri ve dosyaları kaldırmak istediğinizde, bu yalnızca izlenmeyen dizinleri ve dosyaları silecektir


5

oh-my-zsh ile zsh git eklentisi aracılığıyla o büyük adlar sağlar. Bash'da da kullanılabilirler.

gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'

  • gclean izlenmeyen dosyalara ek olarak izlenmeyen dizinleri de kaldırır .
  • gpristineyerel değişiklikleri zorla sıfırlayın, izlenmeyen dizinleri, izlenmeyen dosyaları kaldırın ve .gitignore (dizin başına) ve $ GIT_DIR / info / exclude öğelerinden okunan standart yoksayma kurallarını kullanmayın, ancak yine de -e seçenekleriyle verilen yoksayma kurallarını kullanmayın. Bu, yapı ürünleri de dahil olmak üzere izlenmeyen tüm dosyaların kaldırılmasını sağlar. Bu, temiz bir yapıyı test etmek için bozulmamış bir çalışma dizini oluşturmak için (muhtemelen git reset ile birlikte) kullanılabilir .

2
Geri bildiriminiz için teşekkürler, ifadem kafa karıştırıcıydı. Vurgulanan takma adların oh-my-zsh ile otomatik olarak geldiğini söylemek istedim. Açıkçası harika çalışıyorlar bash. Cevabımı bunu yansıtacak şekilde düzenledim.
ZenLulz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.