Удалить все Git Commit History

Я пытаюсь извлечь репо из Github, вернуть тег в прошлом, нажать его на другой пульт, удалив всю историю. Я могу сделать все ниже, за исключением удаления всех журналов фиксации. Что мне не хватает?

git clone https://github.com/user/user-repo.git
cd user-repo
git reset --hard tags/v2.0
git remote add stash ssh://[email protected]:7999/myproject/user-repo.git
git push --force stash master

Ответы

Ответ 1

Я думал, что вам нужно репо, как новое, поэтому удаление каталога .git/ и повторная инициализация его будут более простыми.

git clone https://github.com/user/user-repo.git
cd user-repo
git reset --hard tags/v2.0

rm -rf .git/
git init
git add .
git commit -m 'first commit'

git remote add stash ssh://[email protected]:7999/myproject/user-repo.git
git push --force stash master

Ответ 2

Вы можете использовать git merge --squash, чтобы раздавить все коммиты в один, а затем нажать.

Ответ 3

Вы в основном говорите об откате всех коммитов в одном коммите или хотите сохранить все коммиты, но усечь фактическое сообщение фиксации?

Чтобы вырезать коммиты в один (и, если хотите, обрезать окончательное сообщение фиксации), вы можете использовать интерактивную rebase:

git rebase -i <whatever>

Чтобы урезать фактические сообщения фиксации, но сохранить все коммиты, используйте параметр --msg-filter для git filter-branch.