三、       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. # Android动画笔记

    标签: Android开发艺术探索笔记 View动画 帧动画 属性动画 View动画 View动画的作用对象时View,有4种动画效果,分别是平移动画.缩放动画.旋转动画.和透明度动画. 此类动画通常 ...

  2. 今天开始上Linux运维课。

    2017年4月25日,北京.沙河老男孩教育,Linux运维. 我是其中一员,希望顺利!

  3. bzoj4810 [Ynoi2017]由乃的玉米田

    Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出个数据结构题   这个题是这样的: 给你一 ...

  4. bzoj2144 【国家集训队2011】跳跳棋

    Description 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.我们要通过最少的跳动把他 ...

  5. Roguelike元素对游戏设计的影响

    Roguelike game自1980年以来,就占据着游戏市场中很大的份额,而现如今的很多游戏中,也加入了Roguelike元素来起到更好的效果.我们知道Roguelike game中有着一些看似任性 ...

  6. CSS中的字体设置

    五大类:serif, sans-serif, monospace, cursive, fantasy serif 衬线字体,如 Big Caslon, 宋体 sans-serif 非衬线字体,如 He ...

  7. vector实现最大流EK算法

    序: 在之前的文章中实现了不利用STL实现EK算法,效率也较高.这次我们企图简化代码,减少变量的使用与手写模拟的代码. 注意:vector等STL的container在不开O2优化的时候实现同一个效果 ...

  8. Activity设置全屏显示的两种方式及系统自带theme属性解析

    转载说明:原贴地址:http://blog.csdn.net/a_running_wolf/article/details/50480386 设置Activity隐藏标题栏.设置Activity全屏显 ...

  9. Mac电脑使用Android Studio进行真机调试

    第一步: 为mac电脑配置 adb 命令的环境变量,分为2小步 1.找到 Android Studio 为你安装的 SDK : 打开电脑中 Android studio 的工具的软件,在启动 Andr ...

  10. Android 6.0的权限问题

    Android 6.0的权限获取不同于别的版本,具体的实例如下: if (ContextCompat.checkSelfPermission(this, Manifest.permission.REA ...