删除所有Git提交历史记录

时间:2013-02-19 23:45:40

标签: git github git-stash

我正在尝试从Github获取一个repo,在过去恢复一个标记,将其推送到另一个远程并删除所有历史记录。除了删除所有提交日志之外,我可以使用以下内容执我缺少什么?

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

3 个答案:

答案 0 :(得分:43)

我认为你想要的是一个像新的回购,所以删除.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://git@myserver:7999/myproject/user-repo.git
git push --force stash master

答案 1 :(得分:3)

您可以使用git merge --squash将所有提交压缩为一个,然后将其推送。

答案 2 :(得分:1)

您基本上是在谈论将所有提交汇总到一个提交中,还是要保留所有提交但是截断实际的提交消息?

要将提交压缩为一个(并根据需要截断最终提交消息),您可以使用交互式rebase:

git rebase -i <whatever>

要截断实际的提交消息但保留所有提交,请使用--msg-filter选项git filter-branch