Gerrit使用坑点

来源:互联网 发布:梦想旅行软件好用吗 编辑:程序博客网 时间:2024/05/01 07:47

1、获取代码

获取代码直接pull的话,如果有人在之前push过代码,本地就会生成一个更改,commit msg 一般是自动生成merge ….。

因为拉下代码本地分支就合入其他人的更改,你要commit到本地,才能保证本地分支是最新的代码。如果有冲突,解决冲突以后你的代码才能是最新的,而且本地代码本身是有其他修改的(如果有commit的内容),所以你的本地分支就超前于远程分支,然后你push本地分支代码,这样远程分支和你本地分支一样都是最新的。

但是主分支上很多分支合并的图不是很好看,所以需要使用rebase来获取代码:git pull –rebase origin develop。

rebase的概念:最后一次获取远程分支的点,和最新提交的点,之间这段作为一个补丁,然后恢复到最后一次获取远程分支的点,拉取远程分支最新的改动,然后把你的补丁追加到这次获取远程分支的后面。

2、push代码没有安装commit-msg hook脚本

用终端直接提交会提示需要安装脚本才能push,复制提示命令执行,或者直接去gerrit去复制下载脚本的命令。再次提交会发现还是提示没有生成changedid,这时候需要在上次的提交上追加一个空提交:commit –amend ,这时候脚本生效,产生changedid,然后就可以push。

3、提交代码不能直接push

提交代码需要使用命令 git push origin HEAD:refs/for/develop
origin HEAD:refs/for/基本属于固定格式,refs大概是reference的缩写, develop的是分支名

4、使用http地址获取代码后push代码重复重复验证用户名和密码

获取代码可以使用http和ssh的两种方式获取:
http每次都需要输入密码和用户名,clone代码用http开头的链接获取。
ssh需要配置ssh的环境,clone代码ssh开头的链接获取。

如果前期用http地址clone的代码,后期不想频繁输入账号信息,通过git命令可以在本地完成origin的修改

git remote set-url origin url url是需要切换的地址

5、相关资料

  • Gerrit 使用介绍
    http://www.ieclipse.cn/2016/05/14/other/tech-gerrit-guide/#comment
  • merge和rebase的区别
    http://dz.sdut.edu.cn/blog/subaochen/2016/01/git-rebase%E5%92%8Cgit-merge%E7%9A%84%E7%94%A8%E6%B3%95%E5%8C%BA%E5%88%AB/
0 0
原创粉丝点击