git: удалить все отслеживаемые файлы?

У меня есть каталог, содержащий репозиторий git, а также другие несвязанные файлы, которые я не хочу отслеживать (его мой домашний каталог, извините, если это плохая практика-альтернативные рекомендации по управлению версиями профиля bash и vim-файлов приветствуются!)

Я могу легко удалить .в Git, но у меня все отслеживаемые файлы в мой каталог. Как удалить все отслеживаемые файлы, чтобы я мог полностью удалить репозиторий git и его соответствующие файлы, эффективно "uncloning" или "удаление"?

кроме того, после удаления этих файлов, Как удалить любые каталоги, которые раньше содержали отслеживаемые файлы, но теперь пусты?

обзоры (обратный вопрос): Git: как удалить все неотслеживаемые файлы

5
задан djsmiley2k
15.02.2023 2:58 Количество просмотров материала 2987
Распечатать страницу

2 ответа

для файлов вы можете немного изменить командную строку на предлагаемую командную строку на странице git-rm

git ls-files -z | xargs -0 rm -f

это гораздо безопаснее с более сложными путями файлов. Для каталогов можно попробовать аналогичную стратегию:

git ls-tree --name-only -d -r -z HEAD | sort -rz | xargs -0 rmdir 

это, однако, зависит от того, как вы хотите обрабатывать каталоги, содержащие файлы (часто gitignored), которые не отслеживаются. Командная строка выше должна оставить эти файлы и их каталоги.

но это было бы легко изменить это, чтобы удалить каталог, независимо от содержания.

10
отвечен andygavin 2023-02-16 10:46

вы можете запросить у git список всех отслеживаемых файлов с помощью git ls-files. Таким образом, следующая команда должна работать просто отлично

git ls-files | xargs rm
1
отвечен Jawa 2023-02-16 13:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх