解决git提交敏感信息(回退git版本库到某一个commit)

解决git提交敏感信息(回退git版本库到某一个commit)

Fri 07 June 2013

git是一个很好的版本库, 现在很多人用它, 并在github上创建项目, 相信大家都有过将敏感信息提交版本的经历, 如何删除? 好像只有删除版本库来解决, 其实我们可以通过回退版本库删除相应的commit来将提交的敏感信息去掉.

备份本地代码

首先我们将本地代码的更改备份一下, 以防丢失更改

回退本地代码的commit

备份完数据, 我们就可以先回退本地的版本库

git reset --hard HEAD~1        # 回退到上一次的提交, 如果是上n次就将1改成对应的数字

回退远端版本库

接下来如果你直接提交会发现提交不了, 说远端做了更改需要先pull一下, 如果pull咱们就白白做上面的操作, 所以我们可以在别的分支操作

新建一个分支, 并提交

git checkout -b temp
git push origin temp:temp

重建主分支

下面我们可以删除并重建主分支, 如果是github的话需要将Default Branch切换到别的分支(项目主页->Settings即可看到)

git push origin --delete master   # 删除远端主分支
git branch -d master              # 删除本地主分支
git checkout -b master            # 新建主分支并切换到主分支
git push origin master            # 提交主分支

这样我们就删除之前提交的敏感信息(如果是github现在就可以把默认分支切换到 master)

删除临时分支

git branch -d temp
git push origin --delete temp

Category: git Tagged: git敏感信息回退commit版本库

时间: 2024-08-06 20:08:43

解决git提交敏感信息(回退git版本库到某一个commit)的相关文章

如何解决更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外 提示:一个版本库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更 提示:(如 'git pull ...')。

不要通过网页提交,通过网页提交一次,然后在终端再次push的时候,会认为网上代码仓库已经被其他地方提交过一次代码,此时会拒绝终端push 这个时候只能是pull,然后才能再次在终端提交. 也就是说,避免这种问题的注意事项是:不要通过网页向仓库提交文件. 解决办法: 1.强行上传  git push -u origin +master 2. 尽量先同步github上的代码到本地,在上面更改之后再上传 如何解决更新被拒绝,因为远程版本库包含您本地尚不存在的提交.这通常是因为另外 提示:一个版本库已向

Git学习笔记(一)创建版本库并添加文件

最近从廖雪峰老师的个人网站上学习git,做点笔记. ★★★★★ 先注册自己的username和email,否则会报如下错误: 注册:git config --global user.name "XXX"    -------这是注册username git config --global  user.email "[email protected]"   -------这是注册email git config  --list    -------这是查看config

【原创】Git删除暂存区或版本库中的文件

0 基础 我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的其他有关Git的文章[链接]. (1)打开你的项目文件夹,除了隐藏的.git文件夹,其他项目文件位于的地方便是工作区,工作区的文件需要添加到Git的暂存区(git add),随后再提交到Git的版本库(git commit). (2)首次新建的文件都是untracked状态(未跟踪),此时需要git add

GIT使用—创建并使用远程版本库

远程版本库 (1)创建一个裸版本库 [[email protected] tmp]# git init fluff2 Initialized empty Git repository in /tmp/fluff2/.git/ [[email protected] tmp]# ls fluff2 [[email protected] tmp]# git init --bare fluff Initialized empty Git repository in /tmp/fluff/ [[email

svn如何根据提交日志信息回退版本

问题场景: 1 记得提交的日志信息中包含openssl,但是不记得这次提交的版本号revesion,是svn初始化后中间的某次提交: 2 svn环境的操作系统平台为Fedora, 即命令行下:而且svn log的提交记录有12659条: [root@localhost v2.1]# svn log | grep r | wc -l12659 解决办法: step1  查找提交日志信息对应的版本号 r33178 [root@localhost v2.1]# svn log --search ope

Git学习笔记(一) 安装及版本库介绍

安装Git 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Windows这几大平台上正常运行了. 在Linux上安装Git 首先,你可以试着输入 git ,看看系统有没有安装Git: $ git The program 'git' is currently not installed. You can install it by typing: sudo

git config配置,工作区和版本库联系。

关于git和github的介绍,我这边不多说. 使用在windows下使用git,需要配置环境变量,也可以使用git自带的终端工具.,打开git bash [email protected] MINGW64 ~ (master) $ cd c:/laoni [email protected]-TPPLHIB MINGW64 /c/laoni $ dir AutomatedMonitor bak Mr.blue PycharmProjects [email protected]-TPPLHIB M

Git学习(2)创建版本库

建版本库 创建版本库repository,Git可以对库中的文件进行管理,文件的修改和删除等都可以被Git跟踪到,可以实现历史版本的还原. 创建版本库的步骤: 1.创建一个空目录,这个仓库的路径是 c/Users/qx/learngit 2.利用 git init 命令将这个目录变成Git可管理的仓库,其中.git目录是Git用来跟踪管理版本库的 将文件添加到版本库: Git(所有的版本控制系统)只能跟踪文本文件的改动,比如TXT文件.网页.程序代码等,会告诉你在第8行添加了一个hello单词,

git 教程(2)--创建版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原". 所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: 1 mkdir learngit 2 cd learngit 3 pwd /home/zl/learngi pwd 用于显示当前目录.注意:这个目录是本人的,和亲们的应该不一样 第二步