返回

提问 添加收藏

如何删除 git 仓库里的历史记录

鉴客 发布于 2018年11月27日 (共有4个回帖)

有些时候我们不希望在 git 仓库中保存整个项目的历史版本记录,例如你可能是不想让人家知道你的开发过程,再者可能是为了缩减仓库的体积。不管出于什么原因,那么本文将对你有用。

如果你只是想删除一个或者两个 commit 记录,可以用 git rebase 和 git filter-branch 。如果你想删除某个时间点之前的所有版本记录,那么可以参考下面内容:

举例说明:我想改写 master 分支,把 e41d7f633c45c46bd42e97cecf93204191d9e4c9 这个 commit 记录之前的所有提交记录都清除掉,而把这个 commit 作为仓库的初始版本,过程如下:

  1. 创建一个新的分支,这里我们暂且命名为 temp

  2. 在新分支顶部使用 rebase 参数来替换每一个之前的 commit 。

git checkout --orphan temp e41d7f633c45c46bd42e97cecf93204191d9e4c9
git commit -m "Truncate history"
git rebase --onto temp e41d7f633c45c46bd42e97cecf93204191d9e4c9 master

然后使用 -f 参数重新强行推送到服务器即可。

搞定。

GitGitee
文明上网,理性发言
客户端 Android iPhone WP7