Вы фактически не удалили большую папку, сделав этот коммит.Файл все еще является частью вашей истории, и этот коммит - просто еще одна версия без большой папки.Поскольку вы еще не выдвинули и предполагаете, что для удаления большой папки существует только последний коммит, я предлагаю следующие шаги:
git reset --hard HEAD~1 # remove latest commit
git rm -r --cached model/ # remove large folder
git commit --amend 'Object Detection v0.1' # rewrite initial commit
Это предполагает, что у вас был только один начальный коммит, кроме коммитаВы показали нам выше, который пытался удалить большую папку.Если у вас было несколько коммитов, вам придется переписывать историю, используя интерактивную перебазировку (git rebase -i
), или возможно использовать filter-branch
.
Редактировать: На основании ваших комментариев у вас есть несколько коммитов.Затем вы можете попробовать сделать интерактивную перебазировку:
git rebase -i --root
Это должно вызвать редактор в bash, показывающий вам список, похожий на следующий:
pick d93jk8f first commit message
pick 2k9vn3d second commit message
pick ekmv098 third commit message
pick f93kl2k fourth commit message
Коммит долженбыть в списке самых старых, самых новых, сверху вниз.Теперь измените pick
на edit
, для каждый коммит.Чтобы войти в режим редактирования, введите SHIFT + I .
edit d93jk8f first commit message
edit 2k9vn3d second commit message
edit ekmv098 third commit message
edit f93kl2k fourth commit message
Теперь выйдите и сохраните: ESC , а затем : wq!
Это должно начать перебазирование.Git теперь повторно применяет всех ваших коммитов и будет останавливаться при каждом коммите.При каждой паузе вы должны удалять большую папку, предполагая, что она была там в тот момент:
git rm -r --cached model/
Затем git add
изменить, зафиксировать, а затем сделать git rebase --continue
, чтобы продолжить перебазирование.После завершения всего процесса эту большую папку следует полностью удалить из вашей истории.
Обратите внимание, что я выполняю ребазинг, начиная с самого первого коммита.Например, если вы знаете, что большой файл был зафиксирован всего три коммита назад, то вы могли бы начать перебазирование с помощью:
git rebase -i HEAD~3
. Это позволит вам переписать только историю, возвращаясь к трем коммитам.Но в данном случае кажется разумным начать с первого коммита.