В моем репозитории GitHub есть 2 каталога. Я хотел бы удалить один из них. Как это можно сделать, не удаляя и не создавая заново весь репозиторий?
Вы можете проверить 'master' с обоими каталогами;
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 rm -r --cached myFolder
Шаги, чтобы удалить папку
git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master
Шаги, чтобы игнорировать эту папку в следующей совершает > в игнор эту папку из следующего обязывает сделать один файл в корне с именем .гитюдного > и положить, что имя папки в него. Вы можете положить столько, сколько вы хотите
.гитюдного файл будет выглядеть так
/FolderName
Если по каким-то причинам сказанное karmakaze не помогло, можно попробовать удалить нужный каталог с помощью обозревателя файловой системы (например, в проводнике Windows File Explorer). После удаления каталога выполните команду:
git add -A
и затем
git commit -m 'deleting directory'
и затем
git push origin master
.
Если вы удалите файлы в каталоге (с помощью git rm
, как объясняется в других ответах), то каталог перестанет существовать для git. Вы не можете зафиксировать пустой каталог, равно как и удалить его.
Это отличается от subversion, где нужно явно указать svn rm emptyfolder/
, и, кстати, именно поэтому страница man
для git описывает себя как "глупый трекер содержимого"
Ответ на вопрос "Как добавить пустой каталог в git-репозиторий" ссылается на FAQ по этой теме:
В настоящее время дизайн индекса git. (staging area) позволяет только файлам быть перечисленными, и никто не достаточно компетентен чтобы внести изменения, позволяющие указывать пустые каталогов, и никто не озаботился > этой ситуацией. этой ситуации, чтобы её исправить.
Каталоги добавляются автоматически при добавлении в них файлов. Это то есть каталоги никогда не нужно добавлять в хранилище, и не отслеживаются сами по себе.
Вы можете сказать "
git add <dir>
", и он > добавит туда файлы. добавит туда файлы.Если вам действительно нужно, чтобы каталог существовать в проверках, вам следует создать файл в нем. .gitignore хорошо работает для этой цели. этой цели; вы можете оставить его пустым, или заполнить именами файлов, которые вы >. ожидаете появления в каталоге.
Перейти в каталог git'а затем введите следующую команду: РМ -РФ <_Directory Name_>
После удаления каталога совершать изменения: коммит в git'е -м "в свое сообщение и"
Затем просто нажимаем изменения на удаленный каталог в Git: ГИТ пуш происхождения <_Branch name_>
Я обычно использую команду git добавить-все` для удаления файлов / папок от удаленных репозиториев
rm -r folder_name
git add --all
git commit -m "some comment"
git push origin master
"мастер" можно заменить на любое другое отделение хранилища.
для удаление пустых папок
я хотел удалить пустой каталог(папку), который я создал, Git не можете удалить его, после некоторых исследований я узнал ГИТ не'т отслеживать пустые каталоги. Если у вас есть пустой каталог в вашем рабочем каталоге, вам следует просто удалить его с
rm -r folderName
Нет необходимости привлекать ГИТ.
Вы можете использовать Attlasian исходного дерева (окон) (https://www.atlassian.com/software/sourcetree/overview). Просто выберите файлы из дерева и кнопка на "Удалить" и на самом верху. Файлы будут удалены из локального хранилища и локальной базы данных в Git. После фиксации, затем нажмите.
Я уже совершил папку перед и хотите удалить каталог в истории.
Я сделал следующее:
Добавить папку .гитюдного
:
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, но не был удален с локального диска.
Один мой коллега предложил БФГ РЕПО-чистильщик, который я думаю, мощный. Это не только удаление нежелательных данных, но и очистить свой репозиторий от любой связанной с фиксацией информации.
Чтобы добавить новую папку:
mkdir <YOUR-DIRECTORY>
Но теперь Git не в курсе этого нового каталога, потому что Git держите треков файл не директории Каталог
git status
ГИТ выиграл'т быть в курсе тех изменений, которые мы'ве сделали, поэтому мы добавляем скрытый `.сохранить файл, чтобы знать Git с этими изменениями.
touch /YOUR-directory/.keep
Теперь, если вы нажмете статус ГИТ
git будут осведомлены с изменениями.
И если вы хотите удалить каталог, вы должны использовать эту команду.
rm -r <YOUR-DIRECTORY>
И если вы проверили с помощью статус ГИТ
, вы увидите каталог был удален.
Первая команда git нужно знать, кто ты, прежде чем удалять что-либо <пр> <ли>ГИТ инит</ли> <ли>ГИТ конфиг пользователя.именем "кто-то"</ли> <ли>ГИТ конфиг пользователя.электронной почты и"[email protected]"</ли> <ли> ГИТ РМ -Р <реж></ли> <ли>коммит в git'е -м "и удаление Дир" и</ли> <ли>git толчок происхождение мастер</ли></пр>