集成式代码管理git+gerrit
一、基础知识
git用于代码版本管理,开源的分布式版本控制系统。
1、一般公司采用服务器+客服端的形式,每个客服端都有一份project的完整代码克隆,能够方便的完成协同开发及版本管理;
2、绝大部分操作都是本地执行,速度快;
3、git中只有三种状态committed、modified、staged;
4、git的工作流程(1)在工作目录修改某些文件;(2)对修改的文件做快照,并保存到暂存区;(3)提交更新,将暂存区的快照转存在git目录
二、客服端操作流程
1、安装git+TortoiseGit
2、生成公钥
$ ssh-keygen -t rsa
3、网页登入Gerrit服务器,add公钥
4、查看公钥是否生效
$ ssh -p 29418 10.1.11.33
5、配置用户信息
$ git config --user.name "XXXX"
$ git config --user.email
6、查看自己具备的权限project
$ ssh -p 29418 10.1.11.33 gerrit ls-projects
7、clone有权限的project
$ git clone ssh://zhoumin1@10.1.11.98:29418/YY8888/device/qcom/mpq8064
8、获取钩子脚本
$ scp -P 29418 -p 10.1.11.98:/hooks/commit-msg .git/hooks/
8、新建本地分支跟踪project主分支
$ git checkout YY8888_4.1_Int_zm_zm YY8888_4.1_Int
8、操作工作目录下的文件,包括修改,增加,删除等操作
9、在完成8操作之后可以使用命令查看当前状态
$ git status
10、将工作目录下修改的文件add至暂存区stage
$ git add XXX
11、提交至本地代码库
$ git commit -s -m " "
12、push至Gerrit服务器project下debug分支
$ git push origin HEAD:XXX_Debug_Dev
13、push到主线分支
$ git push origin HEAD:XXX_Int
(PS:在push到主线分支时一般需要以下步骤:
(1)$ git log 获取修改记录
(2)$ git remote update 更新远程数据
(3)$ git checkout -b test_zm_zm remotes/origin/YY8888_4.1_Int 新建本地分支跟踪主分支
(4)$ git cherry-pick c3622782e7253246fc3e265682d515239b6c1a31 pick需要push的change id
(5)$ git push origin HEAD:refs/for/YY8888_4.1_Int)