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部署做一下铺垫.因为 ...
随机推荐
- iOS:给图片置灰色
一.在iOS开发中,给图片置灰色这个功能经常会用到,例如商品展示时,商品过期或者下线了,那么图片就需要这个功能.下面这个方法就可以到达目的. /** UIImage:去色功能的实现(图片灰色显示) @ ...
- Oracle比较2个表内容
Comparing the Contents of Two Tables A表和B表.拥有一致列,C2一列内容不同. I have two tables named A and B. They hav ...
- Html 列表 li ul使用
html中偶尔会使用到列表,记录一下. <!DOCTYPE html> <html> <head> <meta charset="UTF-8&quo ...
- Cesium中导入三维模型方法(dae到glft/bgltf) 【转】
http://blog.csdn.net/l491453302/article/details/46766909 目录(?)[+] Cesium中目前支持gltf和bgltf两种格式.“gltf是kh ...
- [leetcode]Palindrome Partitioning @ Python
原题地址:https://oj.leetcode.com/problems/palindrome-partitioning/ 题意: Given a string s, partition s suc ...
- JavaScript-json数组排序
排序是开发中不可避免的,最近遇到一个需求需要将JSON数组排序,需求比较简单,实现起来也没什么难度,简单记录下过程: 首先我们需要明白的JavaScript本身的排序是可以传入函数比较的,数组排序如下 ...
- C#遍历可变化的集合
如果用foreach,会造成被遍历的集合更改后带来异常问题. 方法一:用for循环可有效的解决这个问题. ;i<List.Count;i++) { if(条件是真) { List.Remove( ...
- 如何在编辑器里添加CSS或JS代码
//编辑器里代码模式下的代码 <scripttype="text/javascript"> //my code.... </script> //编辑器里可视 ...
- system函数的应用一例
system函数的应用一例
- servlet种下cookie后如何携带cookie继续往下走
事情是这样的,今天我在应用1里面手动种下了一个cookie,然后它会发接着访问应用2,因为是我手动setCookie,所以它还没来得及携带cookie继续前往下一站,于是,apple pen,炸了. ...