git清空历史commits记录

git是当前最常见的版本控制工具,但出现以下情况时,往往需要清空历史commits记录:

  • commits记录占用空间过大甚至远远超过版本控制文件本身大小,进行云端代码管理时会受制于空间限制,无法继续更新
  • 历史记录中存在敏感信息,需要清理

清理历史commits记录的核心思想是,直接删除本地的.git目录,重新建立git仓库并与远程仓库建立链接,采用硬提交的方式覆盖远程仓库的commits记录。下面是一段示例脚本。

参数说明:

  • $REPO_DIR 表示需要处理的Git仓库本地目录
  • [email protected]:xxxx/$REPO_DIR.git 表示远程仓库地址

则可以按照如下步骤处理:

进入本地仓库,删除.git目录

cd $REPO_DIR
rm -rf .git

重新git初始化并添加commit

git init
git add * # 重新添加所有的文件
git commit -m "restart git commit"

添加远程仓库链接

在添加远程仓库时,需要设置远程仓库的代号,本教程记为origin.

git remote -add origin [email protected]:xxxx/$REPO_DIR.git

硬提交,覆盖远程仓库的commits历史记录

假设提交到远程仓库的master分支,则硬提交脚本如下:

git push -f origin master

硬提交之后,再看远程仓库master分支的commits记录就变成1了。

至此,大功告成~

猜你喜欢

转载自www.cnblogs.com/magic-wei/p/9919277.html