git-gerrit

来源:互联网 发布:天刀优化 编辑:程序博客网 时间:2024/05/17 07:38


windows搭建环境   获取远程仓库

  1. 先安装git下载,然后安装图形界面TortoiseGit 下载
  2. 回到windows桌面,开始——所有程序——TortoiseGit——Settings——Git——选择global
  3. 填上username(您名字的拼音),email(您的@1v.cn邮箱)。请严格按这个方式填写,因为gerrit会验证您的提交username,email和LDAP中账户的username,email是否一致。
  4. 回到windows桌面,开始——所有程序——TortoiseGit——puttygen——generate。在显示进度条的时候,请将您的鼠标在进度条下面的空白区不停移动,因为默认是用鼠标的位置生成随机值,如果你不移动鼠标的话,进度条不走哦!
  5. 进度条读完,public key就生成了,用记事本之类的工具暂时保存这个public key。然后点击save private key按钮,以文件的形式保存这个public key对应的private key,这个文件很重要,之后将用于git clone的验证。
  6. 登录http://developer.1v.cn:8080/#/,点击右上角的用户名——settings——SSH Public Keys——Add Key。将上一步生成的public key粘贴到这里,然后点击add。
  7. 登录http://developer.1v.cn:8080/#/,点击Projects——List——点击你要克隆的仓库,你会有三个选择:Anonymous HTTP SSH HTTP。点击SSH,然后复制下面的一行链接(链接类似于:git clone ssh:),之后这个链接将用于定位仓库。
  8. 新建一个空的文件夹,右键git clone。
    • 在URL中输入上一步的链接。
    • Director:选择仓库下载到你本机的位置。
    • Load Putty Key:指定第5步生成的private key的文件路径,到此完成远程仓库的获取

linux搭建环境   获取远程仓库

linux下就没有windows那么复杂了,更多的是简单的命令行

  1. 确保安装了安装了git,openssh
  2. 配置用户名和邮箱,用户名为您名字的拼音,邮箱为@1v.cn邮箱。不可随意填写,因为在gerrit中会有一次匹配过程。
  3. 设置用户名: git config –global user.name “xxx”
  4. 设置邮箱: git config –global user.email xxx@1v.cn
  5. 在用户的根目录下执行命令:ssh-keygen,一直回车。
  6. 登录http://developer.1v.cn:8080/#/,点击右上角的用户名——settings——SSH Public Keys——Add Key。将~/.ssh/id_rsa.pub文件中的内容粘贴到这里,然后点击add。
  7. 登录http://developer.1v.cn:8080/#/,点击Projects——List——点击你要克隆的仓库,你会有三个选择:Anonymous HTTP SSH HTTP。点击SSH,然后复制下面的一行命令(命令类似于:git clone ssh:),之后这个链接将用于定位仓库。
  8. 执行命令cd ~ ; mkdir project ; cd project 。 然后执行第八步的复制的命令,完成!

Git + Gerrit的基本步骤


这幅图是我们的工作模式,多个用户共享一个远程仓库。 

正常情况下,我们只需要一些基本操作

  1. 先克隆远程仓库到本地
    git clone ssh://test@203.195.187.71:29418/test_pro
  2. 进入仓库
    cd test_pro
  3. 下载脚本,用于提交gerrit时自动生成change-id。如果忘了这一步,后面可能会经常出错
    scp -p -P 29418 User@IP:hooks/commit-msg .git/hooks/
  4. 增加可执行权限
    chmod a+x .git/hooks/commit-msg
  5. 修改文件
    echo "add new content!">file
  6. 将文件放入暂存区
    git add file
  7. 提交到本地
    git commit -am 'msg'
  8. 推送到gerrit等待审核
    git push origin master:refs/for/master
  9. 将远程仓库同步到本地,请考虑冲突问题
    git pull origin master
  10. :
    跳到第4步


如果两个开发者从中心仓库克隆代码下来,同时作了一些修订,那么只有第一个开发者可以顺利地把数据推送到共享服务器。第二个开发者在提交他的修订之前,必须先下载合并服务器上的数据,解决冲突之后才能推送数据到共享服务器上。 如果你push的时候出现了To prevent you from losing history, non-fast-forward updates were rejected。说明别人已经提交了,你的提交跟他有冲突。这是你必须用git pull origin master命令从仓库拉取最新的版本,手动解决跟你自己的修改之间的冲突之后,才能push回仓库。

0 0
原创粉丝点击