常用方法及问题"/>
Gerrit的常用方法及问题
克隆项目
本地生成ssh秘钥
链接参考:
ssh配置到gerrit的setting中
clone项目
选择clone with commit-msg hook
提交代码
- 切换至目标分支
git checkout master
- 拉取目标分支最新内容
git fetch origin targetbranch
- 添加修改文件
git add 修改文件
- 填写修改
git commit -m “修改内容:xxxxx”
- 和本地代码合并
git rebase
- 处理冲突文件
- 继续合并
git rebase –continue
(若无冲突6,7可省略)
- 推送修改
git push origin HEAD:refs/for/targetbranch
代码review
代码提交后 在changelist里 添加对应的reviewer
Review通过后 代码入仓
关于abandon 后cannot merge
方法一
- abandon以后在本地输入命令行
git reset --soft
- 若abandon了多次(该命令每输入一次 回退一次)
git reset --soft HEAD~1
- 再次提交更新commit-Id
原理:
以上命令行是往前退回一次 ,abandon几次 输入几次
将abandon对应那次提交相当于在提交历史中’删除’. 否则, 当你commit B后push并审核后, 会出现按钮并提示
submit including parents: this change are depends on other change wich are not ready.
这是因为本地依然存在commit A, 从而导致commit B依赖于commit A, 但是commitA在gerrit上是被abandon掉的, 是不可见 的. 所以导致无法submit.
方法二
推荐使用工具
Sourcetree
下载地址:/
在Sourcetree里的解决方案
提交前
- 获取
- 拉取
如果是abandon 后cannot merge
应该会拉取不下来 会显示有文件冲突
(在确认文件中无冲突代码后)
此时点开项目的【文件状态】
- 已暂存文件列表中的文件 全部取消暂存
- 文件会进入为暂存文件列表
- 对刚刚显示冲突的文件 进行备份
- 在列表中 右键点击单个 选择丢弃
- 然后把备份重新复制进项目
- 再次提交即可
更多推荐
Gerrit的常用方法及问题
发布评论