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

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

Комментарии к вопросу (2)
Решение

Удаление каталога из git и local

Вы можете проверить 'master' с обоими каталогами;

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

Удаление каталога из git, но НЕ из local

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

В этом случае используйте:

git rm -r --cached myFolder
Комментарии (16)

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


Шаги, чтобы удалить папку

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

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

.гитюдного файл будет выглядеть так

/FolderName

Комментарии (8)

Если по каким-то причинам сказанное karmakaze не помогло, можно попробовать удалить нужный каталог с помощью обозревателя файловой системы (например, в проводнике Windows File Explorer). После удаления каталога выполните команду:
git add -A
и затем
git commit -m 'deleting directory'
и затем
git push origin master.

Комментарии (2)

Вы можете попробовать это: ГИТ РМ -РФ <параметра directory_name>

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

Комментарии (1)

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

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

Ответ на вопрос "Как добавить пустой каталог в git-репозиторий" ссылается на FAQ по этой теме:

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

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

Вы можете сказать "git add", и он > добавит туда файлы. добавит туда файлы.

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

Комментарии (0)

Перейти в каталог git'а затем введите следующую команду: РМ -РФ

После удаления каталога совершать изменения: коммит в git'е -м "в свое сообщение и"

Затем просто нажимаем изменения на удаленный каталог в Git: ГИТ пуш происхождения

Комментарии (0)

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

git rm -r folder_name
git commit -m "your commit"
git push origin master
Комментарии (0)

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

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

"мастер" можно заменить на любое другое отделение хранилища.

Комментарии (0)

для удаление пустых папок

я хотел удалить пустой каталог(папку), который я создал, Git не можете удалить его, после некоторых исследований я узнал ГИТ не'т отслеживать пустые каталоги. Если у вас есть пустой каталог в вашем рабочем каталоге, вам следует просто удалить его с

rm -r folderName

Нет необходимости привлекать ГИТ.

Комментарии (1)

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

Комментарии (1)

Я уже совершил папку перед и хотите удалить каталог в истории.

Я сделал следующее:

Добавить папку .гитюдного:

echo Folder_Name/ >> .gitignore

Удалить из всех коммитов:

git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch Folder_Name/' --prune-empty --tag-name-filter cat -- --all

удалить ссылки из старых коммитов:

git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d

Убедитесь, что все старые ссылки будут полностью удалены

rm -Rf .git/logs .git/refs/original

Выполнять сбор мусора

git gc --prune=all --aggressive

подтолкнуть вас изменения в онлайн-хранилище:

git push

Вы сделали здесь.

Но вы можете получить следующую спихнуть все изменения во все ветки: Но будьте осторожны с этой командой!

git push origin --all --force
git push origin --tags --force

После этого папка была удалена из Git, но не был удален с локального диска.

Комментарии (0)

Один мой коллега предложил БФГ РЕПО-чистильщик, который я думаю, мощный. Это не только удаление нежелательных данных, но и очистить свой репозиторий от любой связанной с фиксацией информации.

Комментарии (0)

Чтобы добавить новую папку:

mkdir 

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

git status

ГИТ выиграл'т быть в курсе тех изменений, которые мы'ве сделали, поэтому мы добавляем скрытый `.сохранить файл, чтобы знать Git с этими изменениями.

touch /YOUR-directory/.keep

Теперь, если вы нажмете статус ГИТ git будут осведомлены с изменениями.

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

rm -r 

И если вы проверили с помощью статус ГИТ, вы увидите каталог был удален.

Комментарии (0)

Первая команда git нужно знать, кто ты, прежде чем удалять что-либо <пр> <ли>ГИТ инит</ли> <ли>ГИТ конфиг пользователя.именем "кто-то"</ли> <ли>ГИТ конфиг пользователя.электронной почты и"someone@someplace.com"</ли> <ли> ГИТ РМ -Р <реж></ли> <ли>коммит в git'е -м "и удаление Дир" и</ли> <ли>git толчок происхождение мастер</ли></пр>

Комментарии (0)