/
Вопросы и ответы
/
Git
/

Как удалить папку из удаленного репозитория git

Как удалить папку из удаленного репозитория git

4 года назад

Andrey Moshkov

Ответы

3

Если вы хотите удалить директорию из удаленного репозитория, но оставить её на вашем компьютере (например, вы ошибочно запушили директорию с локальным окружением .venv), то выполните следующие команды

1
2
3
git rm --cached -r <имя_директории>
git commit -m "remove имя_директории from repository"
git push origin main

Также добавьте имя директории или паттерн для исключения в .gitignore, чтобы в дальнейшем она не добавлялась в индекс

1
2
# .gitingore
имя_директории/

4 года назад

Ivan Mamtsev

0

Удалённый репозиторий меняют через коммит. Удалите папку локально, закоммитьте и отправьте изменения.

Удалить папку из репозитория и с диска

1
2
3
git rm -r old_folder
git commit -m "Удалить old_folder"
git push

-r нужен для папок: удаление рекурсивное.

Удалить из репозитория, но оставить на компьютере

Так поступают, если случайно закоммитили node_modules, .venv или папку с логами:

1
2
3
4
5
git rm -r --cached node_modules
echo "node_modules/" >> .gitignore
git add .gitignore
git commit -m "Убрать node_modules из репозитория"
git push

--cached удаляет папку только из индекса Git, файлы на диске остаются. Строка в .gitignore не даст снова добавить папку командой git add ..

Папка удалена, но осталась в истории

Коммит удаляет папку из текущей версии. В старых коммитах она остаётся, и размер репозитория не уменьшится. Если в папке были пароли или ключи, их нужно вычистить из всей истории инструментом git filter-repo:

1
2
git filter-repo --path secrets/ --invert-paths
git push --force

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

Через интерфейс GitHub

Откройте папку, нажмите … справа вверху → Delete directory и подтвердите коммит. Локальную копию потом обновите командой git pull. Пустые папки Git не хранит: когда из папки удалён последний файл, она исчезает сама.

Проверка

1
2
git status
git ls-files old_folder   # пусто, если папка больше не отслеживается

Работу с Git и GitHub разбирают в бесплатном курсе «Основы Git».

9 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845