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

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

方法一:强制回退法

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

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

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

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

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

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

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

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

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

此方法速度比较快,但缺点很明显:第一次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

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

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值