git by example
记一次回滚操作
- 路人甲让我修改一个bug,我在develop下修改了
- 路人甲让我push到releae/sdk0.7分支上
- 我本地操作切换到release分支并合并develop上的修改:
- git checkout release/sdk0.7
- git merge develop
- git pull
- git push origin release/sdk0.7
- 路人甲pull下来看了下之后,发现问题:
- 只要我修改的那个bug
- 不要develop上的其他新修改(develop上有多人的新提交)
- 我本地分支试验下回滚操作:
- git checkout -b rfake 分支一个rfake出来做试验
- 查看我那个修改是develop上的倒2个commit,
- git cherry-pick develop~1 把develop的倒2个commit 通过cherry pick合并到rfake这个分支
- 擦亮眼睛:cherrypick可以取到任何一个分支的任何一个commit,配合reset你想干嘛就干嘛
- git log查看下,正确,
- 回滚:
- git checkout release/sdk0.7
- git reset --hard commithash 到第2个步骤之前的commit(commithash只要指定commit的前面几位hash数字即可)
- 可以通过git log查看某个commit的hash值
- git push origin release/sdk0.7 -f 强制push到仓库
- 重复第5个步骤的事情
- git push origin release/sdk0.7
- 路人甲需要做:
- git reset --hard commithash 到第2个步骤时release分支的最新commit
- git pull 重新拉取
- 事实上,如果一开始就正确操作就可以避免回滚:
- 一开始就在relsease分支上修改,或者从release分支出来一个新分支来修改
- 修改完毕,提交到release分支
- 把release分支的修改merge到develop上,因为develop总是比release新。
- 这个操作覆盖了git的大部分操作:
- 如何切换到分支开发,如何建立新分支做实验
- 如何合并其他分支上的修改到当前分支
- 如何提取某个分支的某个commit并合并到当前分支
- 如何重置
- 如何强推
- 怎样正确的在发布分支上改bug
使用GitHub实施团队项目开发
理解git的原理
- 最佳实践、本文略晦涩、慎入:Commit Often, Perfect Later, Publish Once: Git Best Practices
- 图解Github的PullRequest开发方式:Understanding the GitHub Flow
- 一种成功的git分支策略:A successful Git branching model
- 如何写好git的提交日志:How to Write a Git Commit Message
- 抱持提交历史的干净、整洁:Keeping Commit Histories Clean
- 最好的git合并工具:What's the best visual merge tool for Git?
- git的最佳操作之一是用命令行,但是合并冲突的时候,一个跨平台的Diff工具会带来极大便利:visual diff
git by example的更多相关文章
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- Git 在团队中的最佳实践--如何正确使用Git Flow
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- Git Bash的一些命令和配置
查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...
- 史上最详细git教程
题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
- git亲测命令
一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...
随机推荐
- 编译hadoop2.6.0
具体情况比较曲折:hadoop2.6.0编译不过 错误如下: 这个kms模块始终编译不过,最后得出结论国内的aliyun maven仓库有问题, 在编译hadoop2.2.0 可以通过,因为这个版本的 ...
- const,readonly 这些你真的懂吗? 也许会被面试到哦。。。
首先不可否认,这些在面试上会经常被面试官问起,但是你回答的让面试官满意吗?当然如果你知道了这些原理,或许你就不 怕了.既然说到了原理,我们还是从MSDN说起. 一:值得推敲的几个地方 1.先来看看ms ...
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...
- Java—Lambda基础
虽然JVM有着Scala .Groovy .Clojure 等依赖于JVM的函数语式语言,但直到Java8才算是java正式支持函数式编程: Java8中加入了Lambda的支持标志着Java正式加入 ...
- Linux文件和目录
access() //检查是否调用进程有Access这个文件的权限,如果文件是一个符号链接,会将它解引用,成功返回0,失败返回-1设errno #include <unistd.h> in ...
- [转]Oracle Form 触发器执行顺序
Trigger 不是数据库中的触发器,不过功能类似,都是当某个事件发生的时候会触发. Trigger中可以编写代码,当对应事件发生的时候就会执行该Trigger中的代码. Oracle Form中的T ...
- SpringMVC从入门到精通之第四章
第一个知识点:@Controller注解,用于标识这个类是一个后端控制器(类似struts中的action),主要作用就是接受页面的参数,转发页面.中间的业务逻辑是调用业务类处理的这个就是MVC设计模 ...
- Manacher's algorithm: 最长回文子串算法
Manacher 算法是时间.空间复杂度都为 O(n) 的解决 Longest palindromic substring(最长回文子串)的算法.回文串是中心对称的串,比如 'abcba'.'abcc ...
- Notes on <Assembly Language step by step>
By brant-ruan Yeah, I feel very happy When you want to give up, think why you have held on so long. ...
- Spring学习之第一个AOP程序
IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...