安装git-reviewgit
# yum install git-review # centos7上epel源上有git-review rpm包 # pip install git-review # pip源安装亦可
一、第一次提交
centos
# git clone 远程仓库 # git config --global user.email "yao.xxxxx@xxxxx.net" # git config --global user.name "xxxxxxx" # 配置全局的用户名 # git config --global --add gitreview.username "xxxxxxxx" # 配置gitreview用户名 # git remote add gerrit ssh://xxxxxx@review.sh.xxx.net:29418/xxxcloud/openstack-deploy.git # 代码走review过程 # git remote add gerrit https://<<https认证用户>>:<<https认证密码>>@review.sh.xxx.net/xxxcloud/openstack-deploy.git # 在国内29418端口被墙了,你能够选择https的方式 #也能够经过这种方式保存用户名/密码 # echo "[credential]" >> .git/config # echo " helper = store" >> .git/config # git checkout -b 新分支 (分支命名:跟你提交的功能相关) # git add . # git commit # 填写提交信息 # git review -v # -v显示详细信息
二、已经提交过,针对上一次提交的patchbash
# git fetch ssh://xxxxxx@xxxxxx:29418/99cloud/openstack-deploy refs/changes/13/13/1 && git checkout FETCH_HEAD # git fetch下远程的patch分支 # git checkout -b 新分支 (分支命名:跟你提交的功能相关) # git add . # git commit --amend # 使用一样的change id # git review -v(出现冲突,须要git rebase)
三、针对远程feature开发分支的bug修复ssh
# git branch -a # 基于master分支有个cr-dev分支 * master remotes/origin/HEAD -> origin/master remotes/origin/cr-dev remotes/origin/master # git checkout --track origin/cr-dev # --track 能够让本地分支cr-dev和远程分支cr-dev作upstream Branch cr-dev set up to track remote branch cr-dev from origin. Switched to a new branch 'cr-dev' # git branch -a * cr-dev master remotes/origin/HEAD -> origin/master remotes/origin/cr-dev remotes/origin/master # git checkout -b fix_haproxy_influxdb # 基于本地cr-dev分支,建立一个新的branch出来做为review的topic # git branch -a cr-dev * fix_haproxy_influxdb master remotes/origin/HEAD -> origin/master remotes/origin/cr-dev remotes/origin/master # 在你提交以前,远程分支cr-dev上已经有几个commit了,这时候须要git rebase # git checkout cr-dev # 切换到cr-dev # git branch -a * cr-dev fix_haproxy_influxdb master remotes/origin/HEAD -> origin/master remotes/origin/cr-dev remotes/origin/master # git fetch origin # 这里不用git pull,git pull至关于git fetch && git merge过程 # git merge origin/cr-dev # 和远程的cr-dev分支合并 # git checkout fix_haproxy_influxdb # 切换到fix_haproxy_influxdb分支 Switched to branch 'fix_haproxy_influxdb' # git rebase -i cr-dev # 会将cr-dev分支的代码合并过来,并按照提交的顺序排序 # git add * # git commit # git review # 若是gerrit code reivew merge的时候遇到以下错误,如何解决? The change could not be merged due to a path conflict. Please rebase the change locally and upload the rebased commit for review. 解决: git checkout master git pull --rebase git checkout bug/1485710(举例bug分支) git rebase -i master 有冲突,手动解决 git add . git commit --amend git review # git生成patch # git format-patch 前commit-id 后commit-id(不写,默认最后一个commit-id) # 如何解决gerrit和gitlab数据不一致 找出gerrit数据目录 GerritCodeReview -jar /etc/review_site/bin/gerrit.war daemon -d /etc/review_site --run-id=1445571445.29699 /etc/review_site gerrit数据目录 # ll /etc/review_site/git/openstack/ total 0 drwxr-xr-x 7 root root 129 Nov 3 11:39 cinder.git 删除cinder.git # cd /etc/review_site/git/openstack/ # rm cinder.git # git clone --bare git@172.16.102.51:openstack/cinder.git # 加上--bare选项