Git iş ağacından yerli (izlənməmiş) faylları necə silmək olar?

Cari iş ağacından lazımsız yerli faylları necə çıxarmaq olar?

6113
14 сент. Oxuyuruq 14 Sentyabr. 2008-09-14 12:06 '08 at 12:06 pm 2008-09-14 12:06
@ 36 cavab
  • 1
  • 2

Gitin təmiz sənədlərinə görə

Çalışma ağacından lazımsız faylları silin


Addım 1 - -n parametr ilə çıxarılacaqları göstər:

 git clean -n 

Təmiz addım - Diqqət edin: bu faylları silmək olacaq :

 git clean -f 
  • git clean -fd aradan qaldırmaq üçün git clean -fd git clean -f -d və ya git clean -fd
  • git clean -fX faylları aradan qaldırmaq üçün, git clean -fX və ya git clean -fX
  • git clean -fXgit clean -fX faylları aradan qaldırmaq üçün git clean -fX git clean -f -X və ya git clean -fX

Son iki komanda X də hadisələrdəki fərqləri qeyd edin .

clean.requireForce (default) olaraq "true" (default) ayarlanırsa, -f , əks halda heç bir şey olmayacaq.

Daha çox məlumat üçün git-clean sənədləri yenidən baxın.

Funksiyalar

-f

- güc

Git clean.requireForce konfiqurasiya dəyişənliyi saxta deyilsə, Git təmizliyi -f, -n və ya -i göstərildiyi müddətdən başlayaraq imtina edəcək.

-x

Standart güzəştlərdən (hər bir kataloq üçün) və $ GIT_DIR / info / exclude'den oxunan standartları nəzərə almadan istifadə etməyin, lakin hələ də -e variantları ilə göstərilən ignore qaydalarından istifadə edin. Bu, məhsulların montajı daxil olmaqla, bütün işlənməmiş faylları silmək üçün imkan verir. Təmiz bir quruluş yoxlamaq üçün sabit bir iş qovluğu yaratmaq üçün bu istifadə edilə bilər (ehtimal Git sıfırlama ilə birlikdə).

-X

Yalnızca Git tərəfindən görülən faylları silin. Bu, hər şeyi sıfırdan bərpa etmək üçün faydalı ola bilər, lakin əl ilə yaradılmış faylları qənaət edir.

-n

- quru

Əslində bir şey silməyin, nə edəcəyini göstərin.

-d

Ham fayllara əlavə olaraq lazımsız kataloqları silin. Etməmiş bir qovluq başqa bir Git deposu tərəfindən idarə edildiyində, default olaraq silinmir. Həqiqətən belə bir kataloqu aradan qaldırmaq istəyirsinizsə, iki dəfə -f seçimini istifadə edin.

7973
15 сент. Andreas Ericsson tərəfindən verilmiş cavabı Sep 15 2008-09-15 20:32 '08 at 8:32 pm 2008-09-15 20:32

git clean -f -d silinməsini təmin etmək üçün git clean -f -d .

border=0

Sonra faylların həqiqətən git status keçdiyini yoxlaya bilərsiniz.

866
26 мая '09 в 23:59 2009-05-26 23:59 cavab 26 may 09: 00-da saat 23:59 'də robert.berger tərəfindən verilir. 2009-05-26 23:59

Daha əvvəl heç kimin bu sözü olmadığını təəccübləndirdim:

 git clean -i 

Bu, qarşılıqlı təsir deməkdir və təsirlənmiş faylları əlavə etmək / tərk etmə imkanı təklif edərək, nə çıxarılacağına dair qısa məlumat əldə edirsiniz. Ümumiyyətlə, həqiqi təmizlənmədən qabaq --dry-run məcburi --dry-run daha sürətlidır.

Boş qovluqlara da diqqət yetirmək istəyirsinizsə, atmaq lazımdır. Sonda, yaxşı bir taxallaşdırma edir:

 git iclean 

Beləliklə, interaktiv əmrlərin əlavə manuel tətbiqi qabaqcıl istifadəçilər üçün yorğun ola bilər. Bu günlərdə mən artıq qeyd olunan git clean -fd istifadə git clean -fd

427
30 дек. Cavab SystematicFrank tərəfindən verilir 30 dekabr. 2013-12-30 23:12 '14 'da 11:12 ' də 2013-12-30 23:12
388
14 сент. Cavab 14 martda Fire Lancer tərəfindən verilir . 2008-09-14 12:09 '08 at 12:09 2008-09-14 12:09

Untracked-kataloq öz keçid məkanınızdırsa (məsələn, alt modul), iki dəfə -f istifadə etmək lazımdır:

git clean -d -f -f

213
25 янв. Jan 25-də Michał Szajbe tərəfindən verilmiş cavab 2013-01-25 15:24 '13 'da 15:24' də 2013-01-25 15:24 'də

Untracked faylları silmək üçün asan bir yol

Bütün izlənməmiş faylları silmək üçün, asanlıqla əvvəlcə bunları əlavə etmək və depoları yenidən qurmaq asan bir yoludur.

 git add --all git reset --hard HEAD 

156
03 июня '16 в 15:16 2016-06-03 15:16 Cavab Thanga tərəfindən 03.06.2013 tarixində 15:16 2016-06-03 15:16 tarixində verilir

git stash push -u çünki siz hamınızı git stash pop ilə ləğv edə bilərsiniz.

EDIT: Mən də önbellekte bir untraceable fayl göstərmək üçün bir yol tapdım (məsələn, git show stash@{0}^3 ) on123.ru.site/questions/507 / ...

EDIT2: git stash save push lehinə deyil. Thanks @ script canavar.

121
11 янв. Hiroşi 11 yanvar cavab verdi 2014-01-11 03:41 '14 da 3:41 2014-01-11 03:41

Mən həmişə istifadə edirəm:

 git clean -fdx 

Çox böyük bir layihə üçün bir neçə dəfə çalıştırabilirsiniz.

98
25 нояб. Cavab 25 noyabrda Oscar Fraxedas tərəfindən verilir. 2013-11-25 17:16 '13 'da 17:16' də 2013-11-25 17:16

Git-təmiz , aradığınız şeydir. İşləmə ağacından işlənməmiş faylları silmək üçün istifadə olunur.

83
14 сент. Cavab Espo 14 Sentyabr verilir. 2008-09-14 12:08 '08 at 12:08 2008-09-14 12:08

İmzalı faylları müəyyən bir alt qovluqdan silmək istəyirsinizsə,

 git clean -f {dir_path} 

Qeyri-təkrarlanmayan faylları / faylları və yox sayılan faylları aradan qaldırmaq üçün birləşmiş şəkildə.

 git clean -fxd {dir_path} 

bundan sonra yalnız git status faylları dəyişə bilərsiniz.

73
24 сент. Cavab Vijay C 24 sep verilir. 2013-09-24 09:28 '13 at 9:28 'da 2013-09-24 09:28

git clean -fd kataloq silinir

git clean -fX faylları rədd edir

git clean -fX və yox git clean -fX faylları təmizləyir

Yuxarıda göstərilən bütün variantlardan birinə kimi istifadə edə bilərsiniz

git clean -fdXx

Daha çox kömək üçün git təlimatına baxın.

48
22 янв. Cavab 22 yanvar Pooja verilir 2015-01-22 09:33 '15 at 9:33 'da 2015-01-22 09:33

Bu repo + alt modullarda lazımsız qovluqları və faylları silin

Bu təzə bir klon kimi eyni vəziyyətə gətirir.

 git clean -ffdx 

Bu repo-da bütün əlavə qovluqları və faylları silin, lakin onun submodules deyil.

 git clean -fdx 

Yalnız əlavə qovluqları silmək, lakin faylları (məsələn, qurmaq qovluğu)

 git clean -fd 

Gereksiz qovluqları sil + eksik fayllar (yeni fayllar deyil)

Fayl faylı yoxdursa və hələ qeydiyyata alınmadıysa, qalır. X payını qeyd edin.

 git clean -fdX 

Yeni interaktiv rejim

 git clean 
37
12 февр. Cavab 12 fevralda Şiti Şah tərəfindən verilir . 2017-02-12 11:33 '17 də 11:33 2017-02-12 11:33

Tamam, lazımsız yüklənməmiş faylları və qovluqları silmək , komanda yolunda git istifadə edərək , asanlıqla belədir :

 git clean -fd 

Bunu etmədən əvvəl ikiqat yoxlayın , tarixləri etmədən faylları və qovluqları silmək kimi ...

Həm də bu vəziyyətdə -f qüvvələri dayanır və -d kataloq üçün dayanır ...

Belə ki, yalnız faylları silmək istəsəniz, yalnız -f :

 git clean -f 

Silmək istəyirsinizsə (qovluq) və faylları yalnız izlənməmiş dizin və faylları silə bilərsiniz, məsələn:

 git clean -fd 

Siz git tərəfindən nəzərə alınmayan faylları əlavə etmək üçün -x bayrağını da istifadə edə bilərsiniz. Hər şeyi silmək istəsəniz bu faydalı olar.

-i bayrağının əlavə edilməsi faylları tək-tək yolda silmək üçün icazə tələb edir.

Əgər əmin deyilsinizsə və əvvəlcə hər şeyi yoxlamaq istəyirsinizsə, -n bayrağını əlavə edin.

Uğurla silinməsindən sonra hər hansı bir hesabat görmək istəmirsinizsə -q istifadə edin.

Mən də daha yaddaqalan etmək üçün aşağıda bir şəkil yaradın, xüsusilə də bir neçə adamın bir-birinə qarışdığını görmüşəm - bir qovluğu təmizləyərkən və ya bir növ çaşqınlıqla!


2019

İstifadəçi interaktiv yanaşma:

 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 

interaktiv üçün
Gücü üçün
Dizin üçün -d
ləğv edilən fayllar üçün -x

Qeyd: Yalnız nə edəcəyini yoxlamaq üçün əlavə edin və ya quru edin .

20
02 марта '17 в 23:09 2017-03-02 23:09 Cavab bit_cracker007 mart 02 '17 at 23:09 2017-03-02 23:09 verilir

Mənim üçün yalnız işdən sonra:

 git clean -ffdx 

Digər bütün hallarda, bəzi alt dizinler üçün "Dizin atlama" mesajını aldım.

15
16 авг. Cavab verilir rahul286 16 aug. 2016-08-16 18:29 '16 'da saat 18:29' da 2016-08-16 18:29

git clean -f -d -x $(git rev-parse --show-cdup) kök git clean -f -d -x $(git rev-parse --show-cdup) üçün istifadə olunur, depoların kataloq ağacına zəng etdiyiniz yerdən asılı olmayaraq. Mən hər zaman istifadə edirəm, çünki siz hazırda işlədiyiniz qovluğu tərk etməyə məcbur etmir və hüququ yerdəki yerdən təmizləmək və düzəltməyə imkan verir.

-f , -d , -x bayraqlarının sizin ehtiyaclarınıza uyğun olduğundan əmin 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. 

Digər bayraqları var, yalnız git clean --help seçə bilərsiniz.

15
02 дек. Cavab Nikita Leonov tərəfindən verilir 02 Dek 2015-12-02 20:57 '15 saat 20:57 'de 2015-12-02 20:57

Yalnız 'git status' ilə yoxlanılmayan siyahıda olan faylları silmək istəyirsinizsə,

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

Bu "git təmiz" seçimini edirəm, çünki "git təmiz" git tərəfindən silinməyən faylları çıxardır, buna görə növbəti qurma hər şeyi yenidən qurmalı və IDE parametrlərini də itirmiş olursunuz.

13
02 марта '16 в 5:09 2016-03-02 05:09 cavab cazdev 02 mart '16 at 5:09 2016-03-02 05:09 verilir

Belə bir vəziyyətə görə yaşayıram (yalnız işləyir)

 git add . git reset --hard HEAD 
Diqqət Bunu etmədən əvvəl zəruri dəyişiklikləri (hətta cisim faylları da) kopyaladığınızdan əmin olun.
13
21 февр. cavab 21 fevralda verilir. 2016-02-21 20:29 '16 saat 20:29 'da 2016-02-21 20:29

Həqiqi çıxarılmadan əvvəl silinəcək olanı tapmaq üçün:

git clean -d -n

Aşağıdakı kimi bir şey çıxardı:

Sample.txt faylını qaldırır

Əvvəlki əmrin çıxardığı hər şeyi aradan qaldırmaq üçün:

git clean -d -f

Aşağıdakı kimi bir şey çıxardı:

Sample.txt faylını sil

10
16 февр. Cavab 16 fevralda Omar Mowafi tərəfindən verilir. 2016-02-16 11:42 '16 'da 11:42' də 2016-02-16 11:42 'də

İstifadə edilməmiş faylları silmək üçün əvvəlcə təmizlənmədən təsirlənəcək faylları görmək üçün əmrdən istifadə etməlisiniz.

 git clean -fdn 

Bu silinəcək faylların siyahısını göstərəcəkdir. İndi bu faylları həqiqətən silmək üçün aşağıdakı əmrləri istifadə edin:

 git clean -fd 
8
25 окт. 25 oktyabr Gaurav tərəfindən verilmiş cavab . 2016-10-25 12:09 '16 at 12:09 pm 2016-10-25 12:09

Kimsə həqiqətən də qeyd etməlidir:

 git clean [<options>] 

Am i sağ

7
27 авг. ceyretwiddle tərəfindən verilmiş cavab 27 Avqust. 2015-08-27 13:18 '15 saat 13:18 'da

"Go clean" əmrini idarə edərkən diqqətli olun.

Həqiqi komandanı çalıştırmadan əvvəl həmişə istifadə edin , hansı faylların silinəcəyini göstərin.

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

Varsayılan olaraq, git clean yalnız istifadə edilməyən faylları siləcək. .Gitignore və ya başqa faylları yoxlayırsınızsa, hər hansı bir fayl silinməyəcək. Bu faylları da silmək istəsəniz, təmiz komanda üçün -x əmrini əlavə edə bilərsiniz.

 git clean -f -d -x 

Bir təmiz komanda ilə bir interaktiv rejim var.

 git clean -x -i 

Alternativ olaraq

Əgər bitməmiş işinizi silmək 100% etibarlı deyilsə, bunun yerine stashing istifadə edə bilərsiniz.

 git stash --all 

Bu da dizininizi siləcək, ancaq istənilən vaxt faylları tətbiq etməklə və ya pop ilə yerləşdirmək üçün rahatlıq verir. Sonrakı bir nöqtədə, önbelleğinizi istifadə edərək təmizləyə bilərsiniz:

 git stash drop // or clean 
6
22 окт. DevWL 22 oktyabrına cavab verin . 2017-10-22 00:44 '17 'də 0:44 2017-10-22 00:44' də

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

Mən əsas bloglarımdan bəzilərini əhatə etdim, git-intro-basic-əmrləri

5
16 февр. Cavab 16 fevralda verilir . 2017-02-16 12:05 '17 saat 12:05 'də 2017-02-16 12:05

Aşağıdakı keçi şərhlərindən istifadə edərək, yerli işləməmiş faylları mövcud git iş ağacından asanlıqla silə bilərsiniz.

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

Məsələn:

 git reset --hard HEAD 

Referanslar:

  1. https://git-scm.com/docs/git-reset
  2. 'Git sıfırlama - HARD HEAD' ı əvvəlki bir tövsiyəyə qayıtmaq üçün necə istifadə edirəm?
  3. Yerli depo şöbəsini, məsafədən yerləşdirilən HEAD kimi görünən şəkildə bərpa edin
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html
5

ued Command Sil fayllarını təmiz fayllardan təmizləyin

git təmiz - iş ağacından sınıq faylları çıxarın

Təklif olunan metod: git clean -i ilə qarşılıqlı fəaliyyət rejimi, ona nəzarət edə bilərik. qalan mövcud variantlara baxın.

Mövcud seçimlər:

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

Şərhlər:

1. -d

Ham fayllara əlavə olaraq lazımsız kataloqları silin. Etməmiş bir kataloq başqa bir keçid deposu tərəfindən idarə edildiyində, bu default olaraq silinmir. Həqiqətən belə bir kataloqu aradan qaldırmaq istəyirsinizsə, iki dəfə -f seçimini istifadə edin.

2. -f, - qüvvə

Gedin clean.requireForce konfiqurasiya dəyişəninə doğru deyilsə, go-təmiz, -f, -n və ya -i göstərildikdən sonra başlamağı rədd edəcəkdir.

3. -i, - interaktiv

Nə ediləcək və onlayn faylları silin. Ətraflı məlumat üçün "İnteraktiv rejim" ə baxın.

4. -n, -dry-run

Əslində bir şey silməyin, nə edəcəyini göstərin.

5-q, - qəti

Sakit olun, yalnız səhvləri bildirin, ancaq faylları silməyin.

6 -e, --exclude =

.Gitignore (hər bir kataloq üçün) və $ GIT_DIR / info / exclude içərisində olanlara əlavə olaraq, bu nümunələri nəzərə almamaqla yanlış qaydalara baxın.

7. -x

Standart güzəştlərdən (hər bir kataloq üçün) və $ GIT_DIR / info / exclude'den oxunan standartları nəzərə almadan istifadə etməyin, lakin hələ də -e variantları ilə göstərilən ignore qaydalarından istifadə edin. Bu, məhsulların montajı daxil olmaqla, bütün işlənməmiş faylları silmək üçün imkan verir. Təmiz bir quruluş yoxlamaq üçün toxunmamış bir işçi qovluğu yaratmaq üçün bu, istifadə edilə bilər (ehtimalla sıx sıfırlama ilə birlikdə).

8. -X

Yalnızca Git tərəfindən görülən faylları silin. Bu, hər şeyi sıfırdan bərpa etmək üçün faydalı ola bilər, lakin əl ilə yaradılmış faylları qənaət edir.

01 сент. Sep 01- də Mohideen ibn Mohammed tərəfindən verilmiş cavab 2017-09-01 09:23 '17 saat 09:23 'da 2017-09-01 09:23

Adi git clean komanda git version 2.9.0.windows.1 ilə istifadə edilməmiş faylları git version 2.9.0.windows.1 .

 $ git clean -fdx # doesn't remove untracked files $ git clean -fdx * # Append star then it works! 
5
11 окт. cavab 11 okt qüvvəyə verilir . 2016-10-11 03:14 '16 'da 3:14' də 2016-10-11 03:14 'də

Git deposunu və bütün submodulları recursively silin

Aşağıdakı əmr recursively mövcud git repository və bütün submodules təmizləyir:

 (git clean -d -x -f  git submodule foreach --recursive git clean -d -x -f) 
3
25 сент. Cavab verilir Sergey 25 sep. 2017-09-25 19:25 '17 saat 7:25 'də 2017-09-25 19:25

oh-my-zsh, zs ilə git plugin vasitəsi ilə bu əla aliasları təmin edir. Onlar həmçinin bash istifadə edilə bilər.

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

  • gclean faylları əlavə olaraq təmizlənməmiş gclean qaldırır.
  • gpristine yerli dəyişiklikləri çətinləşdirir, izlənməmiş qovluqları, icazəsiz faylları rədd edir və .gitignore (hər bir kataloq üçün) və $ GIT_DIR / info / exclude'den oxunan standartları məhdudlaşdırmır, lakin hələ də -e seçimi ilə müəyyən edilmiş qaydaları yox sayır. Bu məhsullar da daxil olmaqla bütün untracked faylları silmək üçün imkan verir. Bu təmiz quruluşu test etmək üçün əsas işçi kataloq yaratmaq üçün (ehtimalla sıfırlama sıfırlaması ilə birlikdə) istifadə oluna bilər.
3
02 нояб. Cavab ZenLulz 02 noyabrda verilir. 2017-11-02 11:24 '17 'da 11:24' də 2017-11-02 11:24 'də
 git clean -f 

cari gitdən izlənməmiş faylları siləcək

 git clean -fd 

qovluq və faylları silmək istədiyiniz zaman yalnız icazəsiz qovluq və faylları siləcək.

1
18 мая '18 в 9:04 2018-05-18 09:04 Cavab 18 may 18-də saat 16: 18-da Vishvakarma tərəfindən verilir. 2018-05-18 09:04
  • 1
  • 2

bağlı digər suallar və ya sual verin