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

鉴客 发布于 2018/11/27 17:02
阅读 612
收藏 5

有些时候我们不希望在 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 参数重新强行推送到服务器即可。

搞定。

加载中
1
红薯
红薯

一定要慎用此操作,危害性很大的命令,出了问题码云不背锅

0
楠洪
楠洪

排排坐!

0
宇润
宇润

一般用图形化乌龟的变基佬功能,不过最好少用

宇润
宇润
变基
0
红薯
红薯

BTW: 码云企业版可以阻止这种破坏性操作 ,哈哈

返回顶部
顶部