Gerrit的常用方法及问题

克隆项目

本地生成ssh秘钥
链接参考:https://blog.csdn.net/qq_41921511/article/details/86169782
ssh配置到gerrit的setting中
在这里插入图片描述

clone项目

选择clone with commit-msg hook

在这里插入图片描述

提交代码

  1. 切换至目标分支
git checkout master
  1. 拉取目标分支最新内容
git fetch origin targetbranch 
  1. 添加修改文件
git add 修改文件
  1. 填写修改
git commit -m “修改内容:xxxxx”
  1. 和本地代码合并
git rebase
  1. 处理冲突文件
  2. 继续合并
git rebase –continue

(若无冲突6,7可省略)

  1. 推送修改
git push origin HEAD:refs/for/targetbranch

代码review

代码提交后 在changelist里 添加对应的reviewer
在这里插入图片描述

Review通过后 代码入仓

关于abandon 后cannot merge

方法一

  1. abandon以后在本地输入命令行
git reset --soft
  1. 若abandon了多次(该命令每输入一次 回退一次)
git reset --soft HEAD~1
  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
下载地址:https://www.sourcetreeapp.com/
在Sourcetree里的解决方案
提交前

  1. 获取
  2. 拉取

如果是abandon 后cannot merge
应该会拉取不下来 会显示有文件冲突

(在确认文件中无冲突代码后)
此时点开项目的【文件状态】
在这里插入图片描述

扫描二维码关注公众号,回复: 12882713 查看本文章
  1. 已暂存文件列表中的文件 全部取消暂存
  2. 文件会进入为暂存文件列表
  3. 对刚刚显示冲突的文件 进行备份
  4. 在列表中 右键点击单个 选择丢弃
  5. 然后把备份重新复制进项目
  6. 再次提交即可

猜你喜欢

转载自blog.csdn.net/qq_40593656/article/details/103028151