0


清空GitHub仓库的历史提交记录(commits)

各位在github上维护自己编写的代码工程仓库时,想必遇到过仓库内文件泄漏隐私信息、commits泄漏邮箱信息等敏感头疼问题,但是由于这些仓库收获了很多stars,不想删除后重建新仓库。为了解决这些问题,这里有两个办法:

方法一:强制回退法

  1. 克隆仓库,但记住不可以加--depth=1这类选项;

  2. 使用 git log 命令查询要回滚的 commit_id;

  3. 查找最早一次提交到的commit_id;

  1. 备份原仓库目录下所有文件及文件夹(.git文件夹除外);

  2. 强制还原,执行命令:git reset --hard commit_id,之后 HEAD 就会指向此次的提交记录;

  3. 删除仓库目录下所有文件和文件夹,去除你备份的文件中包含隐私信息的部分,并还原至原仓库目录下;

  4. 执行提交新commit前的常规操作:git add . 和 git commit -m "<...>";

  5. 强制推送到github远程仓库:git push origin HEAD --force;

  6. 此时只剩下第一次提交和本次提交记录,基本达到清空目的:

此方法速度比较快,但缺点很明显:第一次commit记录无法清除。

方法二:分支替换法

  1. 同方法一克隆仓库;

  2. 将当前分支指向一个空分支 latest_branch:git checkout --orphan latest_branch;

  3. 备份原仓库目录下所有文件及文件夹(.git文件夹除外),之后清空该目录(.git文件夹除外);

  4. 去除你备份的文件中包含隐私信息的部分,并还原至原仓库目录下,最后重新添加:git add -A;

  5. 提交更改:git commit -am "<...>";

  6. 删除原分支:git branch -D master (新版的github默认分支是main了,请根据实际情况更改,下同);

  7. 将现有临时分支切换到主分支:git branch -m master;

  8. 强制推送到远程:git push -f origin master --force

此时就全部清空了,只剩本次提交,完美!

标签: github git

本文转载自: https://blog.csdn.net/u012783994/article/details/126339284
版权归原作者 Ernesto Castañón 所有, 如有侵权,请联系我们删除。

“清空GitHub仓库的历史提交记录(commits)”的评论:

还没有评论