专栏首页Java那些事儿Github删除某个文件的所有提交记录

Github删除某个文件的所有提交记录

在使用GitHub的过程中,假如某次提交代码时不小心将敏感信息提交进了公共仓库。 如果发现得及时,本地提交后还没有推送到GitHub远程仓库的话,这种情况还好处理,直接修改代码后通过git commit --amend即可。 但如果发现时已经推送到了GitHub远程仓库,或者已过了许久,后续有了很多新的commits,这种情况就会比较复杂了。

处理方式:git filter-branch

1、删除本地记录

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 你要删除的文件(相对项目的路径)" --prune-empty --tag-name-filter cat -- --all

2、本地记录覆盖到Github,(所有branch以及所有tags)

git push origin --force --all
git push origin --force --tags

3、确保没有什么问题之后,强制解除对本地存储库中的所有对象的引用和垃圾收集

git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now

注:执行第一步时报错:

Cannot rewrite branches: You have unstaged changes.

解决方案:

git status

出现以下提示信息

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   xxx

no changes added to commit (use "git add" and/or "git commit -a")
git checkout -- <file>
或
git add <file>

解决!!! 切记,项目开源时请记得脱敏!!!

Q.E.D.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《Nacos系列》之持久化

    Nacos使用的是内嵌数据库 Derby(Apache Derby),目前Nacos仅支持Mysql数据库,且版本要求:5.6.5+

    Java那些事儿
  • 《Nacos系列》之安装与启动

    Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    Java那些事儿
  • 《Nacos系列》之注册中心

    服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。

    Java那些事儿
  • Git入门到高级系列1-git安装与基础命令

    git是一个分布式的版本控制软件。版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

    老马
  • git的基本使用和多人协作合并管理

    配置SSH 在bash中执行以下命令:ssh-keygen -t rsa -C '522864637@qq.com',然后一路按回车

    Tz一号
  • git

    3.1.4 git log 查看版本库提交历史(可以查询commit提交版本号)

    HUC思梦
  • Git精华

    张申傲
  • 向github中已创建好的repository提交文件

    此时可这样解决: git config core.filemode false git config core.eol lf

    绝命生
  • GIt面试宝典

    3、查看相关配置情况 配置了了之后,显然有时候是需要查看我们当前配置的相关情况的,可以使⽤用如下命令 1、查看 global 类型的配置情况

    阮键
  • Git常见的命令集合

    将 stashed changes 应用到当前分支: git stash apply 删除最新一次的 stashed changes: git stash dr...

    mojocn

扫码关注云+社区

领取腾讯云代金券