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 ...
随机推荐
- 搬家至独立博客 http://blog.imzjy.com
欢迎访问 http://blog.imzjy.com
- 中控考勤仪IFace302多线程操作时无法订阅事件
场景: 在各办事点安装中控考勤仪Iface302,各办事点的工作人员上下班报到时使用指纹或面纹进行自动登记,验证成功后将与服务吕进行通讯记录相关的考勤信息. 条件限制: 由于Iface302设备不支持 ...
- ORA-00030: User session ID does not exist.
同事在Toad里面执行SQL语句时,突然无线网络中断了,让我检查一下具体情况,如下所示(有些信息,用xxx替换,因为是在处理那些历史归档数据,使用的一个特殊用户,所以可以用下面SQL找到对应的会话信息 ...
- SQL Server ---(CDC)监控表数据(转译)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现过程(Realization) 补充说明(Addon) 参考文献(References) ...
- coursera机器学习笔记-神经网络,初识篇
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- windows环境下无法引用全局安装的模块问题
问题 在node项目中,往往需要安装一些依赖的包,通常我们采取全局安装的方式,来减少一些包重复安装带来的烦恼. 但是全局安装后出现无法使用的情况,可能是你NODE_PATH没有设置或者不正确造成的. ...
- 烂泥:vsftpd单用户多目录配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 一.实际问题 在使用vsftpd过程中,我们会经常发现vsftpd在默认情况下一个用户 ...
- Android程序函数 将assets文件夹下的文件复制到手机的sd卡中(包括子文件夹)
最近在做个功能是将asset文件夹下的所有文件(包括子文件)全部拷贝出来到指定目录下.所用的方法无非是用AssetManager.但是这里 有个问题是也要讲子文件夹和子文件都要拷贝出来.到网上Goog ...
- Java里面的转义字符
转义字符是指,用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义”. 常见的转义字符: \n 回车(\u000a) \t 水平制表符(\u0009) \b 空格 ...
- windows phpstudy 本地添加自定义域名
1.本地配置自定义域名访问 2.打开PHPstudy 域名配置 3.打开host.文件地址 C:\Windows\System32\drivers\etc hosts 192.168.1.101 wi ...