[效率工具] Git下对敏感文件/内容的处理
创始人
2024-03-29 20:06:31
0

🍁简介

🔗 相关资料 :

一文玩转Git

有时候我们提交代码到GitHub/Giglab平台, 发现一不小心把带有账号密码以及服务器地址的代码等敏感信息提交到公共平台,对于这种情况我们应该使用一些方案进行规避。下面就讨论下这些方案!

  • 方法一: 配置文件通过.gitignore排除配置文件
  • 方法二: 把每次的提交的敏感内容删除,然后再提交
  • 方法三: 把每次提交的敏感内容修改掉

🍁 方法 / 步骤

🌿 方法一 : .gitignore排除配置文件

# 在.gitignore文件中添加忽略的文件名
application-prod.yml# 刷新.gitignore 缓存
git rm -r --cached .
git add .
git commit -m 'update .gitignore'

🌿 方法二 : 提交的敏感内容删除,再提交

在这里插入图片描述

在这里插入图片描述

🌿 方法三 : 把每次提交的敏感内容修改掉

该方法就是重置git所有记录, 只保留当前最后一次的最新记录,慎重操作

可以手动操作:备份当前main分支代码 --> 创建一个空分支temp–> 把备份的代码添加到空分支 --> 提交空分支代码 --> 删除其他分支 --> 更改temp分支名称为main --> 完成

3.1 备份本地代码(重要)

最好物理备份一下当前代码

3.2 本地操作

# 新建分支
git checkout -b temp
git push origin temp:temp
# 重建主分支
# 下面我们可以删除并重建主分支, 如果是github的话需要将Default Branch切换到别的分支(项目主页->Settings即可看到)
git push origin --delete main
git branch -d main
git checkout -b main
git push origin main 
git branch -d temp
git push origin --delete temp

♻ 对已经提交的敏感内容进行修复

克隆目标仓库

# 建立临时目录 git-sensfixed
cd git-sensfixed
# 克隆并且生成xx.git目录
git clone --mirror  https://github.com/xxx/xx.git

在这里插入图片描述

建立替换策略脚本

  • 建立一个文本文件,如replace-wods.txt,根据替换策略,内容如下:

myPwd123 是你要替换的字符

# Replace with ‘***REMOVED***’ (default)
myPwd123

也可以是:

# replace with 'examplePass' instead
#myPwd123==>examplePass

执行脚本

BFG工具官网地址
在这里插入图片描述

java -jar bfg-1.14.0.jar --replace-text replace-wods.txt xx.git
cd xx.git
git reflog expire --expire=now --all 
git gc --prune=now --aggressive
git push

然后查看含有敏感信息的文件的提交历史,就会发现每个历史提交中的敏感信息都被替换成:

***REMOVED***

🍁 参考资料 & 致谢

[1] 利用BFG删除git提交历史中的敏感内容、或者文件
[2] idea中git版本的回退

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...