Удалить все 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
.