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

У меня есть 2 каталога в моем репозитории GitHub. Я бы хотел удалить одну из них. Как я могу это сделать без удаления и повторного создания всего репозитория?

12 ответов


удалить каталог из git и local

вы можете проверить "мастер" с обоих каталогов;

git rm -r one-of-the-directories
git commit -m "Remove duplicated directory"
git push origin <your-git-branch> (typically 'master', but not always)

удалить каталог из git, но не локальный

как упоминалось в комментариях, то, что вы обычно хотите сделать, это удалить этот каталог из git, но не удалить его полностью из файловой системы (локальной)

в этом случае:

git rm -r --cached myFolder

чтобы удалить папку / каталог только из репозитория git, а не из локального попробуйте 3 простых команды.


шаги для удаления каталога

git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master

шаги, чтобы игнорировать эту папку в следующей совершает

чтобы игнорировать эту папку из следующих коммитов, сделайте один файл в корне с именем .gitignore и добавьте в него имя папки. Вы можете поставить столько, сколько вы хочу!--8-->

.gitignore файл будет выглядеть так

/FolderName

remove directory


Если по какой-то причине то, что сказал кармаказе, не работает, вы можете попробовать удалить каталог, который хотите удалить (через браузер файловой системы), выдав команду
git add -A
а потом ... --4-->git commit -m 'deleting directory'
а потом ... --4-->git push origin master.


вы можете попробовать это: git rm -rf <directory_name>

Это заставит удалить каталог.


если вы удалите файлы в каталоге (с git rm Как объясняют другие ответы), то каталог больше не существует, насколько это касается git. Вы не можете зафиксировать пустой каталог или удалить его.

это не похоже на subversion, где вы должны явно svn rm emptyfolder/ и кстати, почему man страница для git описывает себя как "глупый трекер контента"

ответ на вопрос " как добавить пустой каталог в git хранилище" ссылки FAQ по этой теме:

В настоящее время дизайн индекса git (промежуточная область) разрешает только файлы быть перечисленным, и никто достаточно компетентный чтобы внести изменения, чтобы разрешить пустой каталоги достаточно заботились о эту ситуацию исправить.

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

вы можете сказать:"git add <dir>" и добавлю туда файлы.

Если вам действительно нужен каталог для exist in checkouts вы должны создать файлы в ней. .пример хорошо работает для эта цель; вы можете оставить ее пустой, или заполнять имена файлов ожидайте появления в каталоге.


перейдите в каталог git и введите следующую команду: rm-rf Имя Директории>

после удаления каталога зафиксируйте изменения: git commit-m "ваше сообщение о фиксации"

затем просто нажмите изменения в удаленном каталоге GIT: git push origin филиала>


Я обычно использую git add --all для удаления файлов / папок из удаленных репозиториев

rm -r folder_name
git add --all
git commit -m "some comment"
git push origin master

master может быть заменен на любой другой ветке репозитория.


вы можете удалить папку локально, а затем нажать, как показано ниже:

git rm -r folder_name
git commit -m "your commit"
git push origin master

вы можете использовать дерево источников Attlasian (Windows) (https://www.atlassian.com/software/sourcetree/overview). Просто выберите файлы из дерева и нажмите кнопку "Удалить" вверху. Файлы будут удалены из локального репозитория и локальной базы данных git. Затем зафиксируйте, затем нажмите.


один из моих коллег предложил BFG Repo-Cleaner который я считаю мощным. Это не только удаление нежелательных данных, но и очистка репозитория от любой связанной информации фиксации.


первая команда git должна знать, кто вы, прежде чем удалять что-либо

  1. git init
  2. пользователь конфигурации git.имя"кто-то"
  3. пользователь конфигурации git.электронная почта "someone@someplace.com"
  4. git rm-r
  5. git commit-m "удаление реж"
  6. git push origin master

добавить новый каталог:

mkdir <YOUR-DIRECTORY>

но теперь Git не знает об этом новом каталоге, потому что Git отслеживает файлы, а не каталоги Каталог

git status

Git не будет знать об изменениях, которые мы внесли, поэтому мы добавляем hidden .keep файл, чтобы git знал об этом новом изменении.

touch /YOUR-directory/.keep

теперь, если вы нажмете git status Git будет в курсе изменений.

и если вы хотите удалить каталог, вы должны использовать это команда.

rm -r <YOUR-DIRECTORY>

и если вы проверили с помощью git status, вы увидите, что каталог был удален.