Как удалить всю историю фиксации в github?

Я хочу удалить всю историю фиксации, но сохраните код в текущем состоянии.

потому что в моей истории фиксации слишком много неиспользуемых коммитов.

Как я могу это сделать?

существует ли команда git?

git filter-branch ?
git rebase ?
... 

мой хост кода в github.com.

Ответ 1

Удаление папки .git может привести к проблемам в репозитории git. Если вы хотите удалить всю историю фиксации, но сохраните код в текущем состоянии, очень безопасно это сделать, как показано ниже:

  • Оформить заказ

    git checkout --orphan latest_branch

  • Добавьте все файлы

    git add -A

  • Зафиксировать изменения

    git commit -am "commit message"

  • Удалите ветвь

    git branch -D master

  • Переименуйте текущую ветвь на мастер

    git branch -m master

  • Наконец, принудительно обновите репозиторий

    git push -f origin master

PS: это не приведет к сохранению вашей старой истории фиксаций вокруг

Ответ 2

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

git init
git remote add origin [email protected]:user/repo

теперь зафиксируйте текущую версию кода

git add *
git commit -am 'message'

и, наконец, принудительно обновить GitHub:

git push -f origin master

Однако я предлагаю создать резервную копию истории (папка .git в репозитории), прежде чем предпринимать следующие шаги!