精准入口==>官方文档

Q:我们在提交代码时,把密码或者敏感信息也提交了,怎么办?

A:“在本地删除密码或敏感信息后,再push到远程仓库”

Q:"但这样删除后,在仓库的commit历史中,还是能看到密码呀?"

A:“那就删除commit历史, 但是怎么删呢。。。。”

B:"Using filter-branch"

首先,

  进入到本地目录,执行 git filter-branch, 强制( --force) git对所有分支和tag的历史记录(--tag-name-filter cat -- -all)执行命令,

但是不需要check out(--index-filter)这些历史记录.

  执行的命令是  从历史记录中删除指定文件(`git rm --cached --ignore-unmatch 文件名称`)的内容和空提交(--prune-empty)

如果删除的是目录,需使用(`git rm -r --cached --ignore-unmatch 目录名称`)

  执行命令, 删除文件在本地的提交历史:

  git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 文件' --prune-empty --tag-name-filter cat -- --all

然后,

  (可选)把文件名加入到.gitignore文件中, 以后提交时,会被过滤掉,防止以后不小心又把敏感数据提交到代码仓库中

  echo 文件名 >> .gitignore

  git add 文件名

  git commit -m "提交时忽略xxxx文件"

最后,

  将修改提交到远程仓库,远程仓库的commit历史将被修改

  git push origin --force --all

  

  如果tag中也需要删除敏感数据,则执行

  git push origin  --force --tags

  告诉同事, rebase 之前拉取的仓库,  不要merge, 因为merge后提交,会把之前清除的敏感文件又提交到仓库里。

rebase 会先把本地提交的记录打补丁,然后把本地仓库更新成和远程相同,然后再应用补丁。

merge 是合并, 本地已有的敏感数据还在,远端仓库没了。

  

git删除提交历史的更多相关文章

  1. git删除所有历史提交记录,只留下最新的干净代码

    git删除所有历史提交记录,只留下最新的干净代码 1.Checkout git checkout --orphan latest_branch 2. Add all the files git add ...

  2. Git 删除所有历史提交记录方法

    Git 删除所有历史提交记录方法 切换分支 git checkout --orphan latest_branch 添加所有文件 git add -A 提交更改 git commit -am &quo ...

  3. Git-Runoob:Git 查看提交历史

    ylbtech-Git-Runoob:Git 查看提交历史 1.返回顶部 1. Git 查看提交历史 在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git ...

  4. 【第八篇】- Git 查看提交历史之Spring Cloud直播商城 b2b2c电子商务技术总结

    ​ Git 查看提交历史 Git 提交历史一般常用两个命令: git log 在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看. 针对 ...

  5. Git 查看提交历史(分布式版本控制系统)

    1.查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史.完成这个任务最简单而又有效的工具是 git log 命令. $ git log commit ca82a6dff8 ...

  6. git查看提交历史

    git日志的查看 在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看. 查看日志信息: $ git log 可以用 --oneline ...

  7. git 查看提交历史

    查看提交历史 git log 查看每次提交的具体改动内容 git log -p 查看某个文件历次提交的具体改动内容 git log -p <file name> # git log -p ...

  8. Git修改提交历史中的作者及邮箱信息

    一.使用rebase 如图,红圈中提交的用户名及邮箱是需要改的,则需要复制需要改的提交记录的上一个记录hashcode,在本例中就是a0a891a48f92b51201042fccbe61ed1264 ...

  9. Git 删除提交记录

    .Checkout git checkout --orphan latest_branch 2. Add all the files git add -A 3. Commit the changes ...

随机推荐

  1. python反汇编函数字节码

    使用dis模块 >>> def test(): ... print(1) ... a = 1 ... print(a) ... >>> from dis impor ...

  2. U3D GPU蒙皮

    在U3D中默认情况下是使用CPU蒙皮的,在BUILDING SETTING中的others中可以设置为GPU skinning

  3. [重点]delphi 实现 根据给定的标题去《中国青年报》网上电子报数据中查找匹配的内容,并从该内容中取出引题、正题、副题、作者和正文。

    项目要求:根据给定的标题去<中国青年报>网上电子报数据中查找匹配的内容,并从该内容中取出引题.正题.作者和正文. unit Unit1; interface uses Winapi.Win ...

  4. mybatis中事务简单使用

    一步: 事务只用在service层方法上加 @Transactional(propagation = Propagation.REQUIRED)       :发现如果没有它,增加执行-->1/ ...

  5. ArcGIS特殊标注效果的简单实现

    1. 普通纯色背景:例如望仙亭,水垄沟: 方法:   2. 背景+边框 例如进入点 方法:    

  6. 配置 SQL Server 2008 Email 发送以及 Job 的 Notification通知功能

    SQL Server 2008配置邮件的过程就不写了,网上的案例太多了. http://www.cnblogs.com/woodytu/p/5154526.html 这个案例就不错. 主要写下配置完后 ...

  7. Eclipse绿豆沙护眼

    Window-->Preferences-->Editors——>Text Editors —— Background color 背景颜色向你推荐:色调:85.饱和度:123.亮度 ...

  8. JAVA语言 第三周

    第三周,跟随菜鸟教程学习了一些简单的JAVA语法,包括数据类型.变量.修饰符.运算符.循环.数组.继承. 这些在结构中与c++相似,但语法有些不同.在这些方面,我做了一些总结. 开学测试那张卷子,被我 ...

  9. NFS 网络文件系统制作

    1. 构建根文件系统主要是建立相关的文件目录,以及各目录下相关的配置文件.管理工具等. 2. 首先创建文件目录. mkdir rootfs cd rootfs mkdir bin dev etc li ...

  10. linux系统修改系统时间与时区

    有装过Linux系统的人,可能都会有这样的经历,就是该机器安装windows系统时,时间正确,但是安装了linux系统后,尽管时区选择正确,也会发现系统时间不对.这是由于安装系统时采用了UTC,那么什 ...