`

git push错了分支,要求回滚已经push成功的

    博客分类:
  • git
阅读更多

昨天push时push错了分支

先简单说下情况:

我们测试分支和上线分支都是master

刚提交了一个功能,准备今天上线的.

接着开发下一个功能A,commit 到了本地的master分支,准备push到新分支的



 但是忘了修改push的分支,结果把功能A 的代码push到了master分支,

突然想到master分支明天是要上线的,就着急了.

因为功能A 是我刚提交的代码,是没有通过测试的,但是现在已经在master分支了.

明天上线会从master分支拉代码,这样就会把未通过测试的功能A 上线--这是绝对不允许的.

怎么办呢?

肯定是回滚?关键是怎么回滚?

注意:我不仅commit了,我还已经push了!!!



 

所以需要revert 4次,注意revert的顺序:

 

步骤:

(a)依次执行:

git revert 5e84de1d6be4c317acdd60564cb16ffca10a7850

由上到下revert:

 

(b)git commit

(c)git push

如何获取版本号:

 

 这是一次惨痛的教训

最佳实践:

每次开发新的功能时,从本地分支checkout 一个新的本地分支B

新功能就在分支B 上面开发,然后push到新的远程分支B ,

新功能开发完成之后,merge 分支B 到本地master分支

 

  • 大小: 90.9 KB
  • 大小: 132.4 KB
  • 大小: 573.9 KB
  • 大小: 123.9 KB
  • 大小: 140.5 KB
1
6
分享到:
评论

相关推荐

    git 删除分支和回滚的实例详解

    git 删除分支和回滚的实例详解 【git 删除本地分支】 git branch -D br 【git 删除远程分支】 git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id 【本地...

    git-rollback:轻松回滚提交

    安装$ gem install git-rollback用法$ git rollback贡献分叉( ) 创建功能分支( git checkout -b my-new-feature ) 提交更改( git commit -am 'Add some feature' ) 推送到分支( git push origin my-new-...

    jakkypan#trivia#git回滚总汇1

    1、仅在工作区修改的文件 2、已添加到暂存区的文件 3、已经commit,但是没有push 3、已经push到远端

    Git权威指南PDF完整版

    26.2.2 Git工作分支和 Subversion 如何对应/ 388 26.2.3 其他辅助文件/ 390 26.3 多样的 git-svn 克隆模式/ 390 26.4 共享 git-svn 的克隆库/ 393 26.5 git-svn 的局限/ 394 第5篇 搭建Git服务器 第27章 使用 HTTP ...

    Git教程(精)

    版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态)。另一个状态可以是不同的文件,也可以是不同的文件内容。举个例子,你可以将文件集合转换到两天之前的状态,或者你可以...

    git常用命令总结下载

    1.基础命令(add、commit、pull、push等); 2.分支操作(branch、checkout、cherry-pick、rebase等); 3.回滚与重做(reset、revert等); 4.日志(log、reflog、blame等)。

    gitric:用于Fabric的简单基于git的部署

    从远程存储库提取Git要求您向世界开放存储库,这意味着您的部署过程依赖于另一个动人的部分。 由于git是分布式的,因此您可以从本地存储库中推送信息,并减少对外部资源的依赖,并限制对私有存储库的内部网络访问,...

    wow-222#Read-Books-Notes#开发环境1

    开发环境关于开发环境·js模块化·打包工具·上线回滚的流程国内coding.net·常用git命令·git push origin master //提交远程仓

    github学习命令

    版本控制系统可以保留一个文件集合的历史记录,并能回滚到另外一个状态(历史记录状态)。对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改 (modified)和已暂存(staged)。已提交表示该文件已经被...

    团队构建及项⽬管理技能(三):Git 命令大全,ssh-key 的使⽤,git项⽬初始化,快速查找,建议收藏~

    文章目录Git 命令ssh-key 的使⽤git项⽬初始化 Git 命令 init: 在本地创建⼀个新的库 clone: 从服务器克隆代码到本地 (将所有代码下载) status: 查看当前代码库的状态 add : 将本地⽂件添加到暂存区 commit : 将...

    k8s-cluster:使用Flux和Helm Operator管理Helm版本

    对于Kubernetes,这意味着使用git push而不是kubectl create/apply或helm install/upgrade 。 在传统的CICD管道中,CD是由持续集成工具提供支持的实施扩展,以将构建工件升级到生产环境。 在GitOps管道模型中,对...

    github-deploy-actions:触发该操作后,它将自动部署到目标分支

    Github部署动作触发该操作后,它将自动构建并部署到目标分支。 它还可以保留gh页的历史记录,并便于回滚到以前的版本。 并且它将使用git status --porcelain将部署文件与以前的版本进行比较,如果没有任何更改,它将...

    DeployBot Extension-crx插件

    它很容易设置,可以快速检测到git push,而且价格合适! @DeployBotHQ万岁!!! 多么棒的部署体验! 它。 只是。 作品。 受到成千上万家公司的信任,例如:•列表式APART•Intuit•Clearleft•SANCHO BBDO•REAKTIV...

Global site tag (gtag.js) - Google Analytics