git如何正确回滚代码
git如何正确回滚代码
方法一,删除远程分支再提交
①首先两步保证当前工作区是干净的,并且和远程分支代码一致
$ git co currentBranch
$ git pull origin currentBranch
$ git co ./
②备份当前分支(如有必要)
$ git branch currentBranchBackUp
③恢复到指定的commit hash
$ git reset --hard resetVersionHash //将当前branch的HEAD指针指向commit hash
④删除当前分支的远程分支
$ git push origin :currentBranch
$ //或者这么写git push origin --delete currentBranch
⑤把当前分支提交到远程
$ git push origin currentBranch
方法二,强制push远程分支
①首先两步保证当前工作区是干净的,并且和远程分支代码一致
②备份当前分支(如有必要)
③恢复到指定的commit hash
$ git reset --hard resetVersionHash
④把当前分支强制提交到远程
$ git push -f origin currentBranch
方法三,从回滚位置生成新的commit hash
①首先两步保证当前工作区是干净的,并且和远程分支代码一致
②备份当前分支(如有必要)
③使用git revert恢复到指定的commit hash,当前分支恢复到a>3版本(见下图)
a)此方法会产生一条多余的commit hash&log,其实1c0ce98和01592eb内容上是一致的
b)git revert是以要回滚的commit hash(1c0ce98)为基础,新生成一个commit hash(01592eb)
$ git revert resetVersionHash
④提交远程分支
$ git push origin currentBranch
方法四,从回滚位置生成新的分支merge
①首先两步保证当前工作区是干净的,并且和远程分支代码一致
②备份当前分支(如有必要)
③把当前工作区的HEAD指针指向回滚的commit hash(注意不是branch的HEAD指针)
Notice:这个时候工作区HEAD没有指向分支,称为匿名分支detached HEAD
这个时候提交commit后无法保存状态,git中的任何提交必须是在当前工作区HEAD所在分支的HEAD上进行push hash入栈,所以HEAD必须是属于某个分支的HEAD位置,提交才生效。
$ git co resetVersionHash
④以该commit hash创建一个新的分支
$ git co -b newRevertedHash
⑤切换到当前分支,合并newRevertedHash。
$ git co currentBranch
$ git merge newRevertedHash
⑥进行代码diff,完成代码回滚,push到远程currentBranch
Notice: 也可以直接hotfix,从要回滚的地方直接重新打包一个新tag包,发版本hotFixVersion即可。
git如何正确回滚代码的更多相关文章
- Jenkins通过git tags进行回滚代码
配置Jenkins获取git tag代码的方式其实方法很多,目前我使用比较多的主要是通过Git Parameter 来配置动态的获取最新tags代码,主要我们首先需要安装一下Git Parameter ...
- git用法之[回滚代码]
我们在写代码的任何过程中,都有可能出错,任何过程都有可能要!回!滚!代!码!事关重大!一定要详细讲讲. 一.关于 工作区.暂存区.本地分支: 工作区:即自己当前分支所修改的代码,git add xx ...
- Git如何回滚代码?
摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这 ...
- git push之后回滚(撤销)代码
问题描述:首先,先说明一下,为什么会引发这次的话题,是这样的,我做完功能Agit push之后,2个月后需求部门要求不要功能A了,然后需要在没有功能A的基础上开发,怎么办?赶紧回滚代码呀. 然后我用g ...
- git 版本库回滚(转载)
From:http://www.cnblogs.com/qualitysong/archive/2012/11/27/2791486.html From: http://www.tech126.com ...
- Git 使用revert回滚已提交的commit
在git使用中如果提交错误的代码至远程服务器,可以使用git revert 命令回滚单次commit并且不影响其他commit. 回滚最新一次的提交记录: git revert HEAD 回滚前一次的 ...
- GIT版本库回滚【图文版】
git 版本库回滚,在实际开发过程中总会遇得到 1. 先找出需要回滚的commitid git log -3 2. 重置本地版本库到指定commitid, 注意:本地改动将丢失 ...
- svn上想回滚代码怎么办?——svn merge 命令
小博客断更了很久,最近想接着尝试建立写作的习惯,把自己工作生活遇到的有用知识沉淀下来.尽管微信公共账号比较火,但个人觉得这种不能用搜索引擎检索的东西完全就是历史的倒退,就像 RSS 这种提高信息传播效 ...
- Git误操作 git reset强制回滚 恢复commit方法
参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强 ...
随机推荐
- acm课程练习2--1001
题目描述 Now,given the equation 8x^4 + 7x^3 + 2x^2 + 3x + 6 == Y,can you find its solution between 0 and ...
- java 类与对象
class XiyoujiRenwu { float height,weight; String head, ear; void speak(String s) { System.out.printl ...
- AS3条件编译
package { import flash.display.Sprite; public class Main extends Sprite { public function Main() { s ...
- JavaBean-- DAO设计模式
企业分层架构: 资源层:主要是数据库的操作层,里面可以进行各种数据存储,但是这些数据存储操作的时候肯定依靠SQL语句,如果在一个程序中出现过多的SQL语句,JSP页面非常复杂,不便于程序的可重用性 数 ...
- bundle export fail
C:\eclipse\eclipse.exe -vmargs -Dfile.encoding=utf8
- MJExtention
+ (NSDictionary *)mj_objectClassInArray { // key : 属性名 // value : 类名 return @{ @"dogs" : @ ...
- div使用
div style常用属性 一.常用属性: 1.Height:设置DIV的高度. 2.Width:设置DIV的宽度. 例: <div style="width:200px;height ...
- angula组件-通过键盘实现多选(原创)
在刚刚结束的angular交易系统项目中有几个需求是让我感觉要花点时间的 如何更优雅的使用angular-bootstrap 的 Modal框. 通过键盘实现ctrl多选,shfit批量选的功能. 如 ...
- Button MouseEvent颜色变化
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.button1.Enter += bu ...
- service引用
已引用 attachmentManager 为例 ApplicationContext applicationContext = WebApplicationContextUtils.getWebAp ...