Gerrit最简工作流
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最简工作流的更多相关文章
- 转:Gerrit 学习
		
转载:http://www.scmeye.com/thread-1665-1-1.html 入门Gerrit简介Gerrit是一个建立在Git版本控制系统之上,基于Web的代码审查工具,但如果你已经阅 ...
 - CabloyJS也有工作流引擎了,是你想要的吗?
		
前言 众所周知,NodeJS作为后端开发语言和运行环境,样样都好,就差一个NodeJS工作流引擎.CabloyJS 4.0重点开发了NodeJS工作流引擎,并作为内置的基础核心模块,近一步拓展了Nod ...
 - gerrit简版教程
		
设置public key 1.生成密钥:ssh-keygen -t rsa -C "xiaoming" 2.查看是否已经有了ssh密钥:cd ~/.ssh 3.不知道为什么hook ...
 - [转]深入理解学习GIT工作流
		
深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...
 - gitlab & gerrit & git & repo & jenkins
		
Omnibus GitLab documentation(中文安装说明) 在自己的服务器上部署 GitLab 社区版->较为全面 GIT & REPO & GERRIT (三) ...
 - .net开源工作流引擎ccflow
		
关于济南驰骋信息技术有限公司的.net开源工作流引擎 驰骋工作流引擎,工作流程管理系统:简称ccflow,驰骋一体化解决方案简称ccport. ccflow是济南驰骋信息技术有限公司向社会提供的一款1 ...
 - CI Weekly #13 | 用更 Geek 的方式配置你的 CI 工作流
		
flow.ci 的重大更新来了--支持通过 .yml 文件配置工作流(测试阶段),具体的使用方法可参考文档:同时 flow.ci 也开放了社区>> club.flow.ci,使用的任何问题 ...
 - 【Scala-ML】使用Scala构建机器学习工作流
		
引言 在这一小节中.我将介绍基于数据(函数式)的方法来构建数据应用.这里会介绍monadic设计来创建动态工作流,利用依赖注入这种高级函数式特性来构建轻便的计算工作流. 建模过程 在统计学和概率论中, ...
 - ServiceFabric极简文档-0. ServiceFabric简介
		
前言: 最近ServiceFabric开源了,大家热情都比较高,官方文档大而全,但快速入手不容易找到头绪.发几篇极简的文档,跟大家分享一下,顺便为Ray的ServiceFabric部署做一下铺垫.因为 ...
 
随机推荐
- 【转】Redis 总结精讲 看一篇成高手系统-4
			
https://www.cnblogs.com/rjzheng/p/9096228.html 本文围绕以下几点进行阐述 1.为什么使用redis2.使用redis有什么缺点3.单线程的redis为什么 ...
 - 东芝发布运行Win 10的AR眼镜,它和Google Glass企业版有哪些异同?
			
https://www.leiphone.com/news/201803/Tw0nrq6vGDIvbmXr.html 雷锋网(公众号:雷锋网)获悉,3月13日,东芝发布新AR眼镜dynaEdge AR ...
 - windows server 2008 r2 启用索引(转)
			
08r2的“windows search”服务默认是不安装的,要想启用索引执行下列步骤: 1.打开“服务器管理”——选中“角色”——右边选中“添加角色”——勾选“文件服务”. 2. ...
 - [leetcode]Gray Code @ Python
			
原题地址:https://oj.leetcode.com/problems/gray-code/ 题意: The gray code is a binary numeral system where ...
 - Unique Paths II leetcode java
			
题目: Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. H ...
 - 【Javascript设计模式1】-单例模式
			
<parctical common lisp>的作者曾说,如果你需要一种模式,那一定是哪里出了问题.他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案. 不管是弱类型 ...
 - tensorflow_python中文手册
			
https://www.tensorflow.org/api_docs/python/tf/nn/static_bidirectional_rnn https://www.w3cschool.cn/t ...
 - c/c++ 变量作用域
			
在程序的不同位置,可能会声明各种不同类型(这里指静态或非静态)的变量.然而,声明的位置不同.类型不同导致每个变量在程序中可以被使用的范围不同.我们把变量在程序中可以使用的有效范围称为变量的作用域. 任 ...
 - $(...).modal is not a function
			
bootstrap中调用$(...).modal 方法 提示一个错误 is not a function 检查HTML结构发现,是因为使用了多个Jquery版本,产生了冲突. 解决办法:删掉一个Jqu ...
 - JavaScript Array 对象扩展方法
			
/** 删除数组中指定索引的数据 **/ Array.prototype.deleteAt = function (index) { if (index < 0) { return this; ...