Git: Як видалити всі незафіксовані файли?


40

Я використовую Git для контролю версій. Тепер я хочу видалити на своїй локальній машині всі файли в сховищі, які не відслідковуються.

Я можу використовувати

git status

щоб перерахувати ці файли, але як я можу видалити їх усі?


1
Не можете ви просто перевірити всі файли в іншому місці, на якому ваша машина, а потім видалити стару версію?
Nifle

1
Звичайно, я можу, але чи не існує простішого способу?
RoflcoptrException

Відповіді:


55

Якщо ви ігноруєте, використовуйте git clean -xf. Ви можете це зробити, git clean -dfале це також видалить не відстежувані каталоги. Використовуйте -nдля сухого руху.

Дивіться прибирання без відстеження


3
-x ігнорує
ігнори

8
-xfвидалить і ігноровані файли, і це, мабуть, НЕ те, що ви хочете. Використовуйте -nfта продовжуйте обережно. Див: stackoverflow.com/questions/61212 / ...
Mr_and_Mrs_D

2
Пам'ятайте, що це може видалити ваше середовище / папки IDE (наприклад, .vagrant або .idea (phpstorm))
timhc22

1
СТЕРЕЖИСЬ! gitignored файли будуть очищені назавжди. -100
вересень


5

Інтерактивний підхід користувача:

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/amazon/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y

-i для інтерактивних
-f для файлу
-d для каталогу

Примітка. Додайте -n або --dry-run, щоб просто перевірити, що це буде робити.


3

Існує тонкощі, про яку варто згадати git clean -fщодо непотрібних файлів та каталогів. Якщо у вас немає відстежуваного каталогу, який містить файли, які є, atiotiori, не відслідковуються, git clean -fНЕ видаляйте ці незафіксовані файли.

Іншими словами, НЕ завжди такий випадок git clean -fвидалить усі незафіксовані файли. Краще пояснення цього git clean -fполягає в тому, що він видаляє всі відслідковувані файли, які не знаходяться у відслідковуваних каталогах.

git clean -f -d повинні бути використані для видалення відслідковуваних файлів, які знаходяться у відслідковуваних каталогах, і видається, що немає ніякого способу видалити всі незатребувані файли, не видаляючи також не відслідковувані каталоги, що містять лише непотреблені файли.

Використовуйте git clean -f -d -nДІЙСНО, щоб побачити, що ви хочете зробити, щоб відновити свою робочу директорію до такої, якою вона була б без будь-яких файлів, що не відслідковуються. Потім використовуйте git clean -f -dдля цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.