清除 Git 敏感信息

栏目: 编程工具 · 发布时间: 5年前

内容简介:算是 Git 的奇淫怪技偶然在水群时看到一条消息,有人将服务器密码提交到了 Git 记录上。众所周知,公有仓库的 Git 记录是所有人可见的。所以一旦有敏感信息,不法分子就可以从你的 commit 记录中寻找突破口。这是我谷歌的命令,大概是在 Git 记录中删除带有敏感信息的文件,然后强制 push

算是 Git 的奇淫怪技

背景

偶然在水群时看到一条消息,有人将服务器密码提交到了 Git 记录上。众所周知,公有仓库的 Git 记录是所有人可见的。所以一旦有敏感信息,不法分子就可以从你的 commit 记录中寻找突破口。

解决

Git 命令行

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch sensitive-data.py' --prune-empty --tag-name-filter cat -- --all
git push origin --force –all

这是我谷歌的命令,大概是在 Git 记录中删除带有敏感信息的文件,然后强制 push

BFG

那么有没有更优雅的方法呢,答案是肯定的。

如标题所言,BFG Repo Cleaner 能帮到我们。该 工具 是用 Scala 写的,专门为清除 Git 提交记录中带有敏感信息而产生的。

使用

需要 Java 7 以上版本

  • 安装以及使用
    • 下载 jar 包
      java -jar bfg.jar 命令参数
    • yay -S bfg
      bfg 命令参数

如上所示,有两种安装方式,第一种是通用的运行下载的 jar 包,另一种是为 Arch 用户准备的…

(这时候就要喊出“Arch 牛逼”)

因为我是 Arch 忠实粉丝,所以就以 Arch 中的命令作为示范…

测试

在 GitHub 仓库中创建一个专门来测试的仓库(我学 Git 的时候就已经有一个专门用来测试 Git 的仓库),将密码假装不小心上传到 GitHub。

当发现后,重新将密码去除后重新提交到 GitHub。此时,如果不看 commit 记录就不会知道历史版本,bfg 这个工具就为了防止有心人通过你的 commit 记录捕获你的敏感信息

  • 克隆仓库的 .git 文件夹

    git clone --mirror git@github.com:yi-yun/git777github-learn.git
    
  • 在本地创建 replace.txt

    文本名字是任意的,文本内容需要将密码填上,默认替换成 ***REMOVED*** ,也可以将其替换成自己想要的字符,规则如下所示

    PASSWORD1                       # Replace with '***REMOVED***' (default)
    PASSWORD2==>examplePass         # replace with 'examplePass' instead
    PASSWORD3==>                    # replace with the empty string
    regex:password=\w+==>password=  # Replace, using a regex
    regex:\r(\n)==>$1               # Replace Windows newlines with Unix newlines
    
  • 执行命令

    需要注意两点,一是文本名字与路径,二是相关参数,也可用 --replace-text

    bfg -rt ~/replace.txt git777github-learn.git
    
  • 提交更改

    cd git777github-learn.git
    git reflog expire --expire=now --all && git gc --prune=now --aggressive
    git push
    

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序设计语言理论基础

程序设计语言理论基础

米切尔 / 电子工业出版社 / 2006-11 / 68.00元

本书提出了一个框架,用于分析程序设计语言的语法、操作和语义性质,该框架基于称为类型化λ演算的数学系统。λ演算的主要特色是对于函数和其他可计算的值的一种记法,以及一个等式逻辑和用于表达式求值的一组规则。本书中最简单的系统是称为泛代数的一个等式系统,它可以用来公理化和分析通常用于程序设计的许多数据类型。可作为理论计算机科学、软件系统和数学专业的大学本科高年级或者研究生初始学习阶段的教材,同时也适合用于......一起来看看 《程序设计语言理论基础》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具