学习
实践
活动
工具
TVP
写文章
专栏首页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.

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.liuwenxu.com复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • GitHub删除历史所有提交记录的方法

    西柚dzh
  • [Git] 彻底删除github上的某个文件以及他的提交历史

    # 删除包括历史 git filter-branch --force --index-filter 'git rm --cached --ignore-unma...

    大灰狼2
  • 删除 GitHub 所有 Commit 记录

    把项目提交到 GitHub 上,有时候可能不小心提交了一些隐私信息,如密码和邮箱。如何删除这些记录,形成一个全新的仓库,并且保持代码不变呢?

    义含遗憾
  • idea查看某个类的提交记录

    IT云清
  • Github技巧 – 删除敏感文件、批量修改提交

    最近终于是快忙完面向对象课设,前前后后写了2w+行,也勉强算个完整项目了。不过由于项目原先部署在私有Gogs,后来又移到Github私有仓库,导致我没有在意配置...

    KAAAsS
  • SVN提交时取消某个文件的提交

    只需要在提交的变更列表界面,右键需要取消上传的文件,然后选择移动到“ignore-no-commit”即可。

    Daotin
  • Git 删除已提交的文件

    今天上传代码的时候忘记写 gitignore 了,一不小心把 node_modules 也传上去了,这破玩意体积巨大,所以要从上面删除。

    wsuo
  • Git彻底删除历史提交记录的方法

    試毅-思伟
  • 回滚 Git 提交到 GitHub 的 commit 记录

    在执行上述命令的时候,可能会提示本地的版本落后于远端的版本,因此我们还需要在上述命令中加上--force参数:

    CG国斌
  • node中删除一个文件夹下面所有包含某个字符的文件

    const fs = require('fs'); const path = require('path');

    用户4792657
  • java 删除目录下所有文件_Java删除文件、目录及目录下所有文件的方法实例

    本文主要实现的功能是删除某个目录及目录下的所有子目录和文件,涉及到的知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的...

    全栈程序员站长
  • VBA 清除某个文件夹下的所有xls文件的公式

    With Application.FileDialog(msoFileDialogFolderPicker)

    一线编程
  • php案例 批量删除某个目录下的文件

    这是系统自带的两个特殊隐藏目录。一个.是指代当前目录本身,一个…指代上级目录。平时隐藏了而已。你遍历出来不想显示直接在判断条件里加如果目录等于.或者…就不输...

    贵哥的编程之路
  • python删除某个目录文件夹的方法

    os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。

    砸漏
  • git仓库删除所有提交历史记录,成为一个干净的新仓库 转

    把旧项目提交到git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢?

    双面人
  • java实现输出文件夹下某个格式的所有文件

    曼路
  • python3 删除以某个后缀结尾的文件

    有的时候在用百度云盘下载文件的时候会有一些以结尾的文件,这些文件在下载完必以后没用了有没有自动删除的,这样的文件很多,不能挨着去删除,所以就会写一些脚本来删除,

    py3study
  • 删除指定文件夹下的所有东西

    用户5927264

扫码关注腾讯云开发者

领取腾讯云代金券