repo/gerrit总结

楔子

新接手一个项目,要用到repo和gerrit,总结下repo使用过程。

repo/gerrit概述

  • repo是可执行的python脚本,能更好的管理和使用git
  • gerrit是一种基于web的代码评审工具,使用git。通过浏览器显示每一步变化,是审查更加容易

repo命令

  • repo init -u URL -b 分支名在当前目录创建一个特定的repo目录,从url中取得manifest文件,-b 分支名用来指定某个manifest分支
  • repo sync -c
    • 第一次运行,相当于git clone,把repository中所有内容拷贝到本地
    • 不是第一次运行,相当于更新和自动合并工作
    • -c表示仅仅获取当前分支的内容
  • repo start --all 创建特性分支。由于刚克隆下的代码没有分支,因此需要本地创建特性分支

cherry pick

git cherry-pick commit_id:把另一个本地分支的commit的修改应用到当前分支
例如:在分支A上修改了文件A,git commit后,重新创建一个分支B,想在文件A的基础上继续更改,但又不想提交这些额外的更改,就可以提交分支A上的A文件,然后切换到分支B上,git cherry pick A_commit_id,然后继续操作即可

repo start

repo start branchName:开始一个新的分支

repo upload .

repo upload .上传代码

遇到的问题

  1. repo sync -c克隆到本地的代码没有分支,更改代码后,无法提交代码。此时需要repo start branchName创建分支,此时会发现之前commit的代码没有了。
    解决步骤:
    1. git reflog:该命令可以查看所有分支的所有操作记录,包括已经被删除的commit记录,git log不能查看已经被删除的commit记录
    2. git cherry-pick commit_id:可以将commit_id对应的更改合并到当前分支上

参考

  1. Git和Repo管理使用简要介绍
  2. Repo 命令手册
  3. 开发
  4. git cherry-pick简介
  5. repo使用

未完待续

你可能感兴趣的:(repo/gerrit总结)