三、       Gerrit的注册及使用

  1. 1.         简介

Gerrit为代码审核工具,git提交的代码,必须经过审核才能合入到正式的版本库中。

  1. 2.         注册步骤

(1)       向部门配置管理员申请Gerrit账号。

(2)       登陆部门提供的服务器。使用个人github账户进行登陆。

(3)       首次登陆,需要填写一些基本信息

Username——注册账号的用户名

Fullnmame——gerrit中显示的用户名

Email——统一使用个人分配的公司邮箱,设置过程会接收到一份验证邮件

(4)       配置public key

点击网页右上角登陆用户名处,选择下拉菜单中settings

选择SSH Public Key一项

点击Add Key添加在本机生成的public key,生成方法可参照网页提示或在网上查找

(5)       通知配置管理员添加相关代码权限

  1. 3.         使用介绍

(1)基本

All->Open 所有正在等待审核的代码提交单

All->Merged 所有已经审核通过的代码提交单

All->Abandoned 所有被丢弃的代码提交单

注意:每次本地提交完代码后,需要到网页上查看是否提交成功,状态是否出现冲突,如图第一条中的状态为代码冲突,需要重新拉取最新代码后解完冲突再上传

(2)代码下载

Project ->List,可以查看所有权限以内的的代码工程,点击其中一个进入代码工程菜单,

进入后可看到工程代码下载的地址,git clone……

注意,需要切换至clone with commit-msg hook, SSH的选项地址,才可以下载。

复制地址后粘贴至git窗口即可启动下载。

(3)更多gerrit使用方法,查看Documentation选项

四、       Git使用方法及规范

  1. 1.       git配置用户名及邮箱

git  config  --global  user.email 邮箱名(必须和gerrit设置的一致)

git  config  --global  user.name 用户名

  1. 2.       git下载产生Change-IDcommit_msg文件

commit_msg文件用于自动为每个提交生成Changes-Id,任何一个代码提交,必须有Changes-Id才能够上传成功。如执行前面步骤后,工程文件夹下仍无commit_msg文件,则执行以下操作步骤。

(1)文件下载

在库工程目录中输入以下语句:

scp -p -P 29418 gerrit用户名@服务器连接

(2)设置git全局配置文件

以上文件下载,必须每次创建代码工程时,都必须将commit-msg文件拷贝到对应的.git/hooks/文件才会生效。设置全局的文件配置,则无需每次都进行以上下载或拷贝操作。

A. 创建一个全局的git配置目录 .git-template/

B. 将以上文件目录配置到git中,git  config  --global  init.templatedir  ‘~/.git-template’

C. 创建目录mkdir –P ~/.git-templates/hooks

D. 将下载好的commit-msg文件拷贝至以上目录,并做提权操作chmod a+x  commit-msg

E.  重新下载git库,其对应的.git/hooks目录下就会自动拷贝了commit-msg文件了

  1. 3.       使用git进行代码开发的过程

(1)       初始化代码仓库

复制gerrit网页的下载地址进行下载

(2)       切换开发分支

进入对应工程代码仓目录,

git branch –a      查看该工程所有代码分支

git checkout –b 本地分支名 origin/远程分支名    创建指向远程分支的本地分支

git checkout 本地分支名          切换本地分支

注意:代码开发时,需要在指定的代码分支下进行开发,否则无法提交代码。

(3)       查询提交记录

git log          查看当前分支的提交记录

git log 分支名   查看指定分支的提交记录

(4)       开发代码提交

A. 需要进行代码提交时,git status查看代码修改情况是否正确

B. git add –A将所有修改文件加入缓存区

C. git commit生成一条提交,在弹出的窗口中写入 i,然后写注释

D. 退出编辑注释步骤:Esc > : > wq

E.  消息git log 查看是否提交成功,提交是否产生changes-ID

F.  git fetch --all 将远程代码同步到本地

G. git rebase 将远程代码对应分支与当前分支代码合并

H. 出现合入冲突,需要手动解决冲突后,执行

git add –A 和 git rebase –continue

I.   git log 查看提交是否合入成功

J.   git push origin HEAD:refs/for/分支名称 将本地提交上传服务器,等待审核

注意:每次上传代码前,必须执行同步远程代码的步骤,否则会导致无法合入代码。

提交命令补充:

git reset 单号   取消提交单

git push origin HEAD:refs/for/分支名称 快捷输入方式:

Ctrl+R 然后输入git p   然后按Tab

追加代码到未审核的代码块里,如果之前提交的代码已被审核则无法追加:

1、git commit –amend

2、git push …

(5)       更新本地后台代码

A、 查看状态是否被更改git status

B、 若被更改则git add -A

C、 然后重置本地代码更改git reset --hard

D、 更新分支git fetch --all

E、  合并到本地代码 git rebase

git初步用法的更多相关文章

  1. Git的用法

    Git的用法 Git 的也可以理解为版本控制器.版本控制器(维基的解释):维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程.此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确 ...

  2. git subtree用法(转)

    git subtree用法 一.使用场景 例如,在项目Game中有一个子目录AI.Game和AI分别是一个独立的git项目,可以分开维护.为了避免直接复制粘贴代码,我们希望Game中的AI子目录与AI ...

  3. git初步使用

    git初步使用 主要目的:使用代码控制工具,练习使用git 1.创建新项目 网址如下: https://github.com/kellyseeme?tab=repositories 注意每个人使用的名 ...

  4. git revert用法以及与git reset的区别

    git revert用法 git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一次最新的提交 * git revert HEAD     ...

  5. Git进阶用法

    Git高阶用法 1. 基本概念 你的本地仓库由Git维护的三棵树组成.第一个是你的工作目录,它持有实际文件:第二个是缓存区(Index),它像个缓存区域,临时保存您的改动:最后是HEAD,指向你最近一 ...

  6. 转:Git: git stash 用法小结

    一.应用场景 综合下网上的介绍和资料, git stash (git储藏)可用于以下情形: 发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交.这时就可以考虑  ...

  7. git cherry-pick用法

    场景: 如果你的应用已经发布了一个版本2.0, 代码分支叫release-2.0, 现在正在开发3.0, 代码的分支叫dev-3.0. 那么有一天产品说, 要把正在开发的某个特性提前上线, 也就是说要 ...

  8. git clean用法

    git clean用法   想批量删除branch中新加的文件(untracked files),,git reset --hard不行-   首先确认要删除的文件 git clean -fd -n ...

  9. Git 的用法

    对于GIT  的用法,最近一直在寻找方法.网上也能找到一些方法.但是感觉说的不是很清楚,在这里我基于自己经验写一些. 对于任何一种方法都要安装GIT. 我是基于VS Code 2015 来做的. 在安 ...

随机推荐

  1. Linux Shell——流程控制

    1. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用man 命令来查看命令的详细用法介绍.例如,我想看下 echo 的用法和各种选项.可以执行 man echo.执行结果如下: ...

  2. 微信公众号、H5、APP三者各有什么优势?

    昨天给大家分享了一个现在很热的H5,众所周知,当下H5手机网站.微信公众号.APP这三种载体都越来越火了,而且三者都有各自的一些优势和劣势. HTML5(H5) H5之所以能引发如此广泛的效应,根本在 ...

  3. javascript中的==与===

    一.主要区别: 1.通俗的来说,==是值的比较,而===不仅仅比较值,还比较引用的是否是同一个对象. 2.用==来比较的时候,如果两个数的操作数的类型不一样,会先转换.而===的操作数则不会进行任何转 ...

  4. hdu3746 kmp求循环节

    CC always becomes very depressed at the end of this month, he has checked his credit card yesterday, ...

  5. jquery通过ajax向后台发送(checkbox)数组,并在后台接收,(发送的数据是checkedbox)

    版权声明:本文为博主原创文章,未经博主允许不得转载. $(document).ready(function(){ var flag = 1; $("#delBtn").click( ...

  6. ST-4

    1.(49-7)使用下面的方法printPrimes()完成后面的问题: (a)为printPrimes()方法画控制流图. (b)考虑测试用例t1=(n=3)和t2=(n=5).即使这些测试用例游历 ...

  7. Docker - 终端交互

    进入容器交互终端 使用docker attach命令进入容器交互终端. 注意:如果多个窗口同时attach到同一个容器,那么所有窗口都会同步显示.如果某个窗口因命令阻塞时,那么其他窗口将无法执行操作. ...

  8. Java中的StringTokenizer类

    /*//在java.util中的StringTokenizer类可以分析一个字符串并将字符串分解成可被独立使用的单词//1.StringTokenizer(String s)-----------为字 ...

  9. 企业Centos服务器分区常用方案

    方案一: 一般公司生产环境,数据不是非常重要,集群架构中的一个节点服务器: /boot: 200M swap: 8G内存以下,1.5倍 8G内存以上,设置8G就够了 / : 剩下的所以存储空间 方案二 ...

  10. angular.js的时间指令

    最后样式 html .input-group(style="max-width:150px") input.form-control(uib-datepicker-popup=&q ...