当前位置:   article > 正文

Git 删除Github历史记录_github搜索记录怎么删除

github搜索记录怎么删除

Git 删除历史记录

create-time:2018-11-28 22:15:36
  • 1

Content

1.问题引入

本地git push 时不小心将写有敏感信息(包括但不限于密码、账号)推送到了GitHub上。

即使在本地使用git rm --cache file_name 清除了文件,但是在GitHub 的commit 历史记录上还是能够看到相关的文件及其信息。

我们希望能达到的目的是,清除有关敏感信息的一切信息(外界看不到敏感信息),而不影响其他信息。

2.解决方案

  • 使用BFG工具能够实现快速的清除。可惜,我还是没有看懂怎样使用,使用没有成功。BFG安装请参看 备注

  • git filter-branch 命令。以下使用此命令解决。

3.方案实现

使用git filter-branch 实现清除相关文件以及commit历史记录

注意:请先本地备份清除的文件,此命令同样会删除本地仓库文件,最好直接备份仓库

# 备份本地仓库
cp repo_directory_name new_directory_name

# 进入本地仓库目录
cd repo_directory_name

# 清除文件以及commit历史
# filename 使用相对路径。直接 仓库文件名称,绝对路径报错:文件在仓库之外
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch filename' --prune-empty --tag-name-filter cat -- --all

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

过滤本地敏感文件提交(可选)

将文件名加入到.gitignore文件中,以后提交时,会被过滤掉,防止以后再次将敏感数据提交到代码仓库中

echo file_name >> .gitignore
  • 1

删除GitHub上仓库(可选)

为了防止GitHub网站索引文件, 可以通过网页上删除该仓库,重新建立一个仓库。

提交

git push origin +master
# git push origin --force --all
  • 1
  • 2

备注

BFG 安装

BFG 依赖于JAVA 开发环境,需要安装JAVA开发环境。

# 查看是否存在JAVA环境
java

# 查看JAVA环境文件
apt-cache search jdk

# 安装JAVA环境
sudo apt-get install default-jdk -y

# 查看JAVA 版本,验证JAVA环境
java --version
java 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
# 下载BFG, 网址在BFG网站上复制
# wget 下载的文件,就在 执行wget的当前目录
wget http://repo1.maven.org/maven2/com/madgag/bfg/1.13.0/bfg-1.13.0.jar

# 压缩文件(Ubuntu 上红色字体文件),grep 无法直接 管道查看。
# 请直接使用  ls -a
ls -a
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/992748
推荐阅读
相关标签
  

闽ICP备14008679号