git 版本库回滚(转载)
From:http://www.cnblogs.com/qualitysong/archive/2012/11/27/2791486.html
From: http://www.tech126.com/git-reset/
git 版本库回滚:指将版本库某分支回退到之前的某次提交:commit-id
一、本地版本库回滚
git reset --hard commit-id //回滚到之前的commit-id,将commit-id之后的提交删除 git reset --hard HEAD~ //将最近3次提交回滚
二、远程版本库回滚
应用场景:自动部署系统发布后出现问题,需回滚到某次commit,再重新发布。
原理:先将本地分支回退到某次commit,再删除远程分支,最后重新push本地分支到远程版本库。
操作步骤:
、git checkout develop //develop为要重置的分支名 、git pull 、git branch develop-backup //备份本地分支 、git reset --hard commit_id //重置本地分支到某次提交 、git push origin :develop //删除远程develop分支 、git push origin develop //将重置后的本地分支推送到远程版本库,在远程版本库新建develop分支 、git push origin :develop-backup //删除备份的分支
注意事项
如果使用了gerrit作为远程代码中心库和code review平台,需要确保操作git的用户具备分支的push权限,并选择了Force Push选项。
另外,gerrit中心库是个bare库,将HEAD默认指向了master,因此master分支是不能进行删除操作的,最好不要选择删除master分支的策略,换用其他分支。如果一定要这样做,可以考虑到gerrit服务器上修改HEAD指针。建议最好不要删除master分支。
参考文档:https://review.typo3.org/Documentation/access-control.html#category_push
==========================
reset命令的三种用法:
1、git reset --mixed
此为默认方式,不带任何参数,回退到某个版本,只保留源码,回退commit和index信息。
2、git rest --soft:
回退到某个版本,只回退commit信息,不恢复index file。如果要重新提交,执行commit即可。
3、git reset --hard
彻底回退到某个版本,本地源码与将与回退的版本保持一致。
如果修改某些内容,并push到远程版本库,此时,执行git reset,只会将本地版本库进行版本回退,远程版本库不会发生变化。
当执行git pull后,远程版本库的内容将再次与本地版本库merge。
此时,有以下方法可实现远程版本库回退:
1、直接在远程版本库目录下,执行 git reset --soft commit-id. 注意:在远程版本库不能使用mixed或hard参数。
2、在本地删除远程分支,然后reset到指定commit-id,再push本地分支到远程。
3、执行 git reset --hard commit-id,然后push: git push origin branch-name -f
第三种方法参考资料:http://zhuqingcode.github.io/git/2014/05/15/github-a-bug-commit.html
git 版本库回滚(转载)的更多相关文章
- GIT版本库回滚【图文版】
git 版本库回滚,在实际开发过程中总会遇得到 1. 先找出需要回滚的commitid git log -3 2. 重置本地版本库到指定commitid, 注意:本地改动将丢失 ...
- git本地代码库回滚(webstorm下)
git本地代码库回滚(webstorm下) 1. 场景 添加了一个文件[file-for-test.js]到git的控制下(并没有push到远程分支上) 进行了三次修改,并分别进行了三次commit( ...
- git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
[git 删除本地分支] git branch -D br [git 删除远程分支] git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退 ...
- 【GIT】git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
[git 删除本地分支] git branch -D br [git 删除远程分支] git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退 ...
- 【转】git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
转载自:http://m.blog.csdn.net/blog/lihongli528628/45483463 [git 删除本地分支] git branch -D br [git 删除远程分支] g ...
- git 远程分支回滚
git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id [本地代码库回滚]: git reset --hard commit-id :回滚到commit-id,讲commit-id ...
- git远程代码库回滚(webstorm下)
git远程代码库回滚(webstorm下) 1. 场景 添加了一个文件[file-for-test.js]到git的控制下 进行了三次修改,并分别进行了三次commit,最后进行了一次push git ...
- git如何正确回滚代码
git如何正确回滚代码 方法一,删除远程分支再提交 ①首先两步保证当前工作区是干净的,并且和远程分支代码一致 $ git co currentBranch $ git pull origin curr ...
- Git误操作 git reset强制回滚 恢复commit方法
参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强 ...
随机推荐
- 用360安全浏览器控制网速,调试loading
360安全浏览器 按f12 两个按钮的意思分别为禁止缓存,网络设置,这样就能控制网速了,调试loading了
- 【转】win7 uac关闭
方法1: 原文网址:http://jingyan.baidu.com/article/c275f6bae2650ce33d756795.html 首先点击开始,并在输入框中输入“MSCONFIG”,打 ...
- freeswitch 接通后再录音
需求 录音时不要将前置媒体录制进去. 用法 <action application="set" data="media_bug_answer_req=true&qu ...
- 市委组织部考核项目——利用EasyUi中可编辑的DataGrid控件对多行数据进行编辑并提交
http://blog.csdn.net/cjr15233661143/article/details/19041165 市委组织部考核项目中需要录入原始数据,拿开发区的数据录入举例说明,见下图,需要 ...
- cache与负载均衡
cache 客户端CACHE客户端CACHE,包括浏览器本身的缓存.FLASH存储等,用于存储一些临时的文件或者变化不大或无变化的数据:1.如浏览器自动将用户浏览的网页存储在用户的硬盘上,下次再浏览相 ...
- vs2010编译lua-5.3.2
lua-5.3.2.tar.gz 解开在 D:\lua 1. 启动VS命令行 2. c:\program files\microsoft visual studio 10.0\vc\bin>cd ...
- 转:GBDT(MART) 迭代决策树入门教程 | 简介
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又 叫 MART(Multiple Additive R ...
- ASP.NET MVC 程序 报错“CS0012: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义”的解决办法
运行MVC程序,具体报错信息如下: 解决方法: 打开Web.config在assemblies下加入<add assembly="System.Data.Entity, Version ...
- SSL使用windows证书库中证书实现双向认证
前一段时间对OpenSSL库中的SSL通讯稍微琢磨了一下,在百度文库中找了个示例程序,然后在机器上跑,哇塞,运行成功!那时那个惊喜啊,SSL蛮简单的嘛.前几天,老板要我整一个SSL通讯,要使用wind ...
- js之浏览器对象模型(BOM)
一.BOM的层次结构: window(可以访问BOM中的所有元素,是最顶层的元素)下一层包括如下: →document (document的属性:forms.cookie.links/anchors. ...