Как удалить папку из репозитория github
Перейти к содержимому

Как удалить папку из репозитория github

  • автор:

git rm

В начале использования Git часто возникает вопрос: «Как заставить Git больше не отслеживать какой-либо файл или несколько файлов?» Чтобы удалить файлы из репозитория Git, можно воспользоваться командой git rm . Ее действие противоположно действию git add.

Обзор команды git rm

Команда git rm позволяет удалять отдельные файлы или группы файлов. Основное назначение git rm — удаление отслеживаемых файлов из раздела проиндексированных файлов Git. Кроме того, с помощью git rm можно удалить файлы одновременно из раздела проиндексированных файлов и рабочего каталога. Удалить с ее помощью файл только из рабочего каталога нельзя. Файлы, в отношении которых выполняется команда, должны быть идентичны файлам в текущем указателе HEAD . В случае расхождений между версией файла из указателя HEAD и версией из раздела проиндексированных файлов или рабочего дерева Git заблокирует удаление. Такая блокировка является механизмом безопасности, который предотвращает удаление изменений в процессе их внесения.

Обратите внимание, что git rm не удаляет ветки. Подробнее об использовании веток Git см. здесь.

Использование

Указывает файлы, подлежащие удалению. Можно указать один файл, несколько файлов через пробел ( file1 file2 file3 ) или шаблон подстановки ( ~./directory/* ).

-f
--force

Параметр -f применяется для отключения проверки безопасности, с помощью которой Git обеспечивает соответствие файлов в указателе HEAD текущему содержимому раздела проиндексированных файлов и рабочего каталога.

Связанные материалы
Шпаргалка по Git
СМ. РЕШЕНИЕ
Изучите Git с помощью Bitbucket Cloud
-n
--dry-run

Параметр dry run является защитным механизмом. Он позволяет выполнить пробный запуск команды git rm без удаления файлов. В выходных данных отображаются файлы, которые должны были быть удалены.

Параметр -r — это сокращение от слова recursive. При выполнении команды git rm в рекурсивном режиме она удаляет не только каталог назначения, но и все содержимое его вложенных каталогов.

Параметр разделителя позволяет явным образом отличить список имен файлов от аргументов, передаваемых команде git rm . Разделитель полезен, когда какие-либо из файлов имеют имена, аналогичные параметрам команды.

--cached

Параметр cached указывает, что должны быть удалены только файлы, находящиеся в разделе проиндексированных файлов. Файлы в рабочем каталоге при этом остаются нетронутыми.

--ignore-unmatch

Этот параметр заставляет команду завершиться со статусом sigterm, равным 0, даже если файлы, указанные для удаления, не найдены. Sigterm — это код состояния в Unix. Код 0 указывает на успешный вызов команды. Параметр —ignore-unmatch может быть полезен, если команда git rm используется в составе скрипта оболочки, который должен обеспечивать корректную обработку отказа.

-q
--quiet

Параметр quiet скрывает вывод команды git rm . Как правило, команда выводит по одной строке на каждый удаленный файл.

Отмена изменений, внесенных командой git rm

Изменения, вносимые при выполнении команды git rm , не являются окончательными. Эта команда обновляет раздел проиндексированных файлов и рабочий каталог. Изменения не сохранятся, пока не будет создан новый коммит и они не будут добавлены в историю коммитов. Так что изменения, внесенные командой git rm, можно «отменить» с помощью стандартных команд Git.

git reset HEAD

Команда git reset восстановит раздел индексированных файлов и рабочий каталог до коммита HEAD . В результате изменения, внесенные командой git rm , будут отменены.

git checkout .

Такого же результата можно добиться с помощью команды git checkout: она восстановит последнюю версию файла из указателя HEAD .

Если после выполнения git rm был создан новый коммит, из-за которого удаление сохранилось, можно воспользоваться командой git reflog , чтобы найти ссылку, предшествующую выполнению git rm . Подробнее об использовании git reflog см. здесь.

Пояснения

Аргумент , переданный команде, может содержать точные пути, шаблоны поиска файлов или точные имена каталогов. При выполнении команды удаляются только пути, зафиксированные в репозитории Git посредством коммитов.

В шаблонах поиска файлов можно задавать имена каталогов. При использовании шаблонов поиска следует быть внимательным. Рассмотрим примеры: directory/* и directory* . Использование первого шаблона приведет к удалению всех файлов в каталоге directory/ , тогда как второй вызовет удаление всех каталогов, имя которых начинается на directory — например, directory1 , directory2 , directory_whatever и т. д., что может быть нежелательным.

Область действия команды git rm

Действие команды git rm распространяется только на текущую ветку. Удаление выполняется только в деревьях рабочего каталога и раздела проиндексированных файлов. Удаление файла не сохраняется в истории репозитория до тех пор, пока не создан новый коммит.

Почему следует использовать git rm, а не rm

Репозиторий Git обнаруживает выполнение стандартной команды оболочки rm для отслеживаемого им файла и соответствующим образом обновляет рабочий каталог. Но раздел проиндексированных файлов не обновляется. Чтобы внести в него изменения, для удаленных путей к файлам необходимо дополнительно выполнить команду git add . Команда git rm уменьшает количество действий, поскольку обновляет при удалении и рабочий каталог, и раздел проиндексированных файлов.

Примеры

git rm Documentation/\*.txt

В данном примере шаблон поиска файлов используется для удаления всех файлов *.txt в каталоге Documentation и всех его подкаталогах.

Обратите внимание, что символ звездочки * здесь экранируется символами косой черты. Это сделано, чтобы оболочка не расширяла шаблон. В таком варианте он включает только пути к файлам и подкаталогам, находящимся в каталоге Documentation/ .

git rm -f git-*.sh

В этом примере команда выполняется с параметром force для всех файлов, соответствующих шаблону подстановки git-*.sh . Параметр force явным образом удаляет целевые файлы из рабочего каталога и раздела проиндексированных файлов.

Удаление файлов, которых уже нет в файловой системе

В разделе «Почему следует использовать git rm , а не rm » говорилось о том, что команда git rm предусмотрена для удобства: она сочетает функции стандартной команды оболочки rm и команды git add , позволяя удалить файл из рабочего каталога и раздела проиндексированных файлов. Если удалить несколько файлов с помощью стандартной команды оболочки rm , состояние репозитория может стать проблематичным.

Если требуется записать все явным образом удаленные файлы в следующий коммит, можно выполнить команду git commit -a . Она внесет все события удаления в раздел проиндексированных файлов для подготовки к следующему коммиту.

Если же стоит задача безвозвратно удалить файлы, удаленные с помощью команды оболочки rm , нужно воспользоваться следующей командой:

git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached

Эта команда создаст список удаленных файлов из рабочего каталога и передаст его команде git rm —cached , которая обновит раздел проиндексированных файлов.

Команда git rm: заключение

Команда git rm выполняет действия над двумя главными деревьями управления внутренним состоянием Git: рабочим каталогом и разделом проиндексированных файлов. Команда git rm позволяет удалять файлы из репозитория Git. Это удобный инструмент, объединяющий функции стандартной команды оболочки rm и команды git add : сначала git rm удаляет целевой объект из файловой системы, а затем добавляет событие удаления в раздел проиндексированных файлов. Эта команда — одна из многих, которые можно использовать для отмены изменений в Git.

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

введите сюда описание изображения

Прошу помочь мне с таким вопросом. Через командную строку создал папку в своем репозитории, теперь не знаю как удалить ее. Помогите пожалуйста.

Отслеживать
задан 20 авг 2019 в 15:51
Сергей Малинкин Сергей Малинкин
33 1 1 золотой знак 2 2 серебряных знака 6 6 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

git rm -r course_test 

Для удаления файла используется

git rm file_name 

Отслеживать
ответ дан 20 авг 2019 в 17:41
user344683 user344683
Спасибо Вам большое!
20 авг 2019 в 18:59
Отметьте пожалуйста ответ, как решение. Удачи Вам!
– user344683
20 авг 2019 в 19:20

  • github
  • git-репозиторий
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.5.3.8609

Как удалить папку в Github именно с сайта, а не через git?

Всем привет! Нужно удалить одну папку, которая уже не используется, но проблема в том, что я не использую Git, а просто загружаю файлы через сайт Github при помощи кнопки «Upload files».
Неужели ради удаления папки придётся ставить Git?

  • Вопрос задан более трёх лет назад
  • 13110 просмотров

Комментировать
Решения вопроса 1

DevMan

только один способ — удалить все файлы в папке.
способ так себе по удобству, поэтому проще установить любой git-клиент.

Ответ написан более трёх лет назад
Нравится 3 3 комментария
Zadavatel_Voprosov @Zadavatel_Voprosov Автор вопроса
А можете порекомендовать какой-нибудь Gui клиент, или консольный «хардкор и только хардкор»?)

DevMan

Zadavatel_Voprosov, да хоть родной гитхабовский, это дело вкуса.
Zadavatel_Voprosov @Zadavatel_Voprosov Автор вопроса
DevMan, Я скачал Github Desktop и был доволен ;D
Ответы на вопрос 1

Нажимаешь в папке которую нужно удалить в правом верхнем углу на три точки и после delete directory.Удаляет только нужную папку. Да я проверял. Сам зашел чтобы найти ответ потом нашел его самостоятельно и решил поделиться. Парень сверху пиздит) Шутка. Нормальный тип

Ответ написан более трёх лет назад
Нравится 1 1 комментарий
Спасибо бро. Респект что разобрался и другим помог. Я даже зарегался, чтоб коммент оставить.
Ваш ответ на вопрос

Войдите, чтобы написать ответ

github

  • GitHub

Push не работает. Что сделать?

  • 1 подписчик
  • 11 часов назад
  • 84 просмотра

visual-studio

  • Visual Studio
  • +1 ещё

Как добавить кнопку Open with Visual Studio?

  • 1 подписчик
  • 03 мая
  • 136 просмотров

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *