Git、Gerrit安装与使用,重点在于如何解决冲突

Git、Gerrit与Jenkins/Hudson CI服务器

http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson/
 
上面这篇文件把安装已经讲解的很清楚了。简单来说就两行
git init --bare /path/to/gits/example.git
java -jar gerrit.war init -d /path/to/location
只是配置review说的不是很详细,特截图一张
gerrit.jpg

大小: 82.69 K
尺寸:  x 
浏览: 53 次
点击打开新窗口浏览全图
 
gerrit是不会解决冲突的,如果两个人同时改了一个文件的同一行,就会冲突,你将会看到Review in Progress并且最下面会有Your change could not be merged due to a path conflict.
 
如果在冲突提交者机器上解决远程冲突
cd demo
git fetch origin
git rebase origin/develop
修改冲突文件
git add .
git rebase --continue
git push origin
不会产生新的changes记录,将原changes记录重新review提交即可
git pull
 
如果在其它机器上解决远程冲突
cd demo
以分支为develop为例
打开Gerrit有冲突的那个网址,如 http://192.168.1.33:8080/#/c/16/ 找到Download 如下命令,执行
git fetch ssh://minggui.li@192.168.1.33:29418/demo refs/changes/16/16/1 && git checkout FETCH_HEAD
git checkout -b new_branch_name
git fetch origin
git rebase origin/develop
修改冲突文件
git add .
git rebase --continue
git push origin new_branch_name:refs/for/develop
git checkout develop
git branch -D new_branch_name
不会产生新的changes记录,将原changes记录重新review提交即可,这时在原冲突机器上直接pull会本地冲突,需要
git reset --hard HEAD^
否则会出现cannot do a partial commit during a merge.最后更新下代码
git pull
 
扩展阅读
撤销前一次 commit
git revert HEAD 
撤销所有本地修改
git reset --hard
撤销所有本地到上一次修改
git reset --hard HEAD^
 
参考:
http://johnshen0708.iteye.com/blog/1487760

http://rubyist.marsz.tw/blog/2012-01-17/git-reset-and-revert-to-rollback-commit/

上一篇: AWK 简明教程   下一篇: 利用rinetd和socat做端口转发与反向代理

提交疑问

回顶部