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
应该会拉取不下来 会显示有文件冲突

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

  1. 已暂存文件列表中的文件 全部取消暂存
  2. 文件会进入为暂存文件列表
  3. 对刚刚显示冲突的文件 进行备份
  4. 在列表中 右键点击单个 选择丢弃
  5. 然后把备份重新复制进项目
  6. 再次提交即可

猜你喜欢

转载自blog.csdn.net/qq_40593656/article/details/103028151
今日推荐