Gerrit最简工作流:

git clone  ...  //注意clone with commit-msg hook,否则push可能失败(ERROR: missing Change-Id in commit message footer)

开发修改代码

git status   //查看当前状态,是否所有修改都要提交

git commit -a -m "xxx" //提交修改到本地分支(如果不是想提交所有修改,分开使用git add和git commit -m)

git pull -r   //更新合并,如果工作在非master下,用git pull origin master -r。如果冲突见FAQ:2

git push origin HEAD:refs/for/master%r=评审员邮箱


FAQ:


1、如果commit后如何修改提交内容? 如果gerrit评审不过或者pipeline失败怎么办?

修改代码

git add 修改代码

git commit --amend        //会跳出来修改日志的编辑框,保存即可,todo,是否要加-m。

git pull  -r                        //更新合并,如果工作在非master下,用git pull origin master -r

git push origin HEAD:refs/for/master%r=评审员邮箱

2、git pull -r 合并有冲突怎么办?

先修改代码解决冲突

git add 修改代码

git rebase --continue

git commit --amend  //前面有未push的提交才用参数--amend

git push origin HEAD:refs/for/master%r=评审员邮箱

3、git放弃未提交的修改

$ git checkout -- file-name

$ git checkout *.java   //比如修改的都是java文件,不必一个个撤销,可以使用

$ git checkout .  //撤销所有修改

4、git所有操作都能回退(回到过去和未来)

$ git reflog
b7057a9 HEAD@{0}: reset: moving to b7057a9
98abc5a HEAD@{1}: commit: more stuff added to foo
b7057a9 HEAD@{2}: commit (initial): initial commit

所以,我们要找回我们第二commit,只需要做如下操作:
$ git reset --hard 98abc5a

$ git reset --hard HEAD^   //上一个版本是HEAD^,上上一个版本就是HEAD^^,更多^比较容易数不过来,所以写成HEAD~100

注:revert 和reset 都能回退,但revert 会生成新的commit,Gerrit建议使用reset

git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留

git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区

5、如何修改历史提交?

git使用amend选项提供了最后一次commit的反悔。但是对于历史提交呢,就必须使用rebase了。

git rebase -i HEAD~3

表示要修改当前版本的倒数第三次状态。

这个命令出来之后,会出来三行东东:

pick:*******

pick:*******

pick:*******

如果你要修改哪个,就把那行的pick改成edit,然后退出。这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:

git commit --amend   //对commit进行修改。

git rebase --continue  //修改完了之后,要回来对不对? OK,一切都搞定了。

Gerrit最简工作流的更多相关文章

  1. 转:Gerrit 学习

    转载:http://www.scmeye.com/thread-1665-1-1.html 入门Gerrit简介Gerrit是一个建立在Git版本控制系统之上,基于Web的代码审查工具,但如果你已经阅 ...

  2. CabloyJS也有工作流引擎了,是你想要的吗?

    前言 众所周知,NodeJS作为后端开发语言和运行环境,样样都好,就差一个NodeJS工作流引擎.CabloyJS 4.0重点开发了NodeJS工作流引擎,并作为内置的基础核心模块,近一步拓展了Nod ...

  3. gerrit简版教程

    设置public key 1.生成密钥:ssh-keygen -t rsa -C "xiaoming" 2.查看是否已经有了ssh密钥:cd ~/.ssh 3.不知道为什么hook ...

  4. [转]深入理解学习GIT工作流

    深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...

  5. gitlab & gerrit & git & repo & jenkins

    Omnibus GitLab documentation(中文安装说明) 在自己的服务器上部署 GitLab 社区版->较为全面 GIT & REPO & GERRIT (三) ...

  6. .net开源工作流引擎ccflow

    关于济南驰骋信息技术有限公司的.net开源工作流引擎 驰骋工作流引擎,工作流程管理系统:简称ccflow,驰骋一体化解决方案简称ccport. ccflow是济南驰骋信息技术有限公司向社会提供的一款1 ...

  7. CI Weekly #13 | 用更 Geek 的方式配置你的 CI 工作流

    flow.ci 的重大更新来了--支持通过 .yml 文件配置工作流(测试阶段),具体的使用方法可参考文档:同时 flow.ci 也开放了社区>> club.flow.ci,使用的任何问题 ...

  8. 【Scala-ML】使用Scala构建机器学习工作流

    引言 在这一小节中.我将介绍基于数据(函数式)的方法来构建数据应用.这里会介绍monadic设计来创建动态工作流,利用依赖注入这种高级函数式特性来构建轻便的计算工作流. 建模过程 在统计学和概率论中, ...

  9. ServiceFabric极简文档-0. ServiceFabric简介

    前言: 最近ServiceFabric开源了,大家热情都比较高,官方文档大而全,但快速入手不容易找到头绪.发几篇极简的文档,跟大家分享一下,顺便为Ray的ServiceFabric部署做一下铺垫.因为 ...

随机推荐

  1. IIS 7.0 SSL 部署指南

    一.  生成证书请求 1.进入IIS控制台    进入IIS控制台,并选择服务器的服务器证书设置选项.  2.添加证书请求    进入服务器证书配置页面,并选择“创建证书申请”  3.选择加密服务提供 ...

  2. google的transformer模型的解释

    参考这篇文章: https://blog.csdn.net/mijiaoxiaosan/article/details/73251443 看了下: 最核心的如下:其最重要的创新应该就是Self-Att ...

  3. scrapy框架系列 (1) 初识scrapy

    Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页 ...

  4. MyBatis动态SQL foreach标签实现批量插入

    需求:查出给定id的记录: <select id="getEmpsByConditionForeach" resultType="com.test.beans.Em ...

  5. svg image标签降级技术

    1.svg image标签降级技术: svg不能很好的在anroid2.3中得到支持,需要额外的补充,IE8-以及Android 2.3默认浏览器是不支持SVG的. svg image标签降级技术,这 ...

  6. 【Eclipse】Eclipse-Build-缓慢-卡住

    Eclipse-Build-缓慢-卡住 eclipse building workspace 卡主_百度搜索 解决building workplace 导致的卡死,使得eclipse加速 - CSDN ...

  7. 【Scala】Scala-case-参考资料

    Scala-case-参考资料 scala case_百度搜索 Scala School - 基础知识(续) scala case匹配值 - CSDN博客 scala入门教程:scala中的match ...

  8. 如何使用Android studio打开eclipse项目

    转: http://blog.csdn.net/zcw93219/article/details/50770445

  9. PHP 自定义方法实现数组合并

    在PHP中提供了强大的数组功能,对于数组的合并也提供了两个方法:array_merge 和 array_merge_recursive 但对于我们千变万化的业务来说这些内置的方法并不完全能满足我们的要 ...

  10. (转)【风宇冲】Unity3D教程宝典之AssetBundles:第二讲

    原创文章如需转载请注明:转载自风宇冲Unity3D教程学院                             AssetBundles第二讲:AssetBundles与脚本 所有Unity的As ...