彻底清除Github上某个文件的历史操作记录(亲测有效)

今天又被GitHub制裁了半天,不过好在最后问题解决了,防止下次出错赶紧记下来!

问题描述:
我在GitHub有一个库hum,在路径hum/kkk/下存在一个test.c文件,我在本地修改了test.c文件,修改过程中不小心在test.c代码段添加了一些私密信息(如密码之类的),然而机智的我并没有发现就直接git push 提交到了github,/泪奔/泪奔,冲动之下我再次更改本地的test.c文件(把那段私密信息删掉删掉),从新提交到GitHub,正当我以为只是小问题时,我去GitHub上查看test.c的历史记录。。。。记录里显示最新的一次更改是:您删除了test.c中的某某信息,这些信息是什么什么。。。哇,心中千万只草泥马而过啊啊!那相当于历史记录里还是存在我的私密信息啊,好吧,最后在我不懈的努力之下还是完美删除了这些历史信息。

解决方法:
本地Linux命令行下分六步
首先cd 进入项目文件夹下,然后执行以下代码

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 文件名' --prune-empty --tag-name-filter cat -- --all

git push origin master --force

rm -rf .git/refs/original/

git reflog expire --expire=now --all

git gc --prune=now

git gc --aggressive --prune=now

注意几点说明:
①:执行这些命令要在项目的顶层路径下,如我当前工作路径在hum/下,不能是在hum/kkk/下,第一条命令中,文件名写相对路径,如我此处为kkk/test.c

②:这些命令是把test.c的所有历史记录删除,我操作之后的结果是也删除了本地test.c文件,所以为了安全起见应该先在本地把改好的test.c文件备份,等这六步操作完成之后再git push提交一次test.c就可以了

待解决:
如何删除某文件特定的一条历史记录?

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows上使用curl下载GitHub上私有库中某个Release中的文件,需要进行以下步骤: 1. 安装并配置curl工具。如果还没有安装curl,可以从官网下载并安装。安装完成后需要配置curl的环境变量,使其可以在任意目录下使用。 2. 生成Personal Access Token。在GitHub上生成一个Personal Access Token,用于访问私有库。具体操作可以参考GitHub的文档。 3. 获取Release ID。在GitHub上进入私有库的Release页面,找到要下载的文件所在的Release,在页面地址中获取Release ID(即URL中以/releases/开头的字符串)。 4. 获取文件下载链接。在GitHub上进入私有库的Release页面,找到要下载的文件,右键点击文件名复制链接地址。 5. 使用curl下载文件。打开命令提示符窗口,输入以下命令: ``` curl -H "Authorization: token <Personal Access Token>" -o <本地文件名> -L <文件下载链接> ``` 其中,`<Personal Access Token>`是你在GitHub上生成的Personal Access Token;`<本地文件名>`是你想要保存的文件名;`<文件下载链接>`是你在步骤4中复制的文件下载链接。 例如,如果你想要下载一个名为example.txt的文件,可以输入以下命令: ``` curl -H "Authorization: token <Personal Access Token>" -o example.txt -L https://github.com/<用户名>/<仓库名>/releases/download/<Release ID>/<文件名> ``` 执行命令后,curl将会下载该文件并保存到当前目录下。如果想要将文件保存到其他目录下,可以在`<本地文件名>`前加上保存目录的路径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值