git初步用法
三、 Gerrit的注册及使用
- 1. 简介
Gerrit为代码审核工具,git提交的代码,必须经过审核才能合入到正式的版本库中。
- 2. 注册步骤
(1) 向部门配置管理员申请Gerrit账号。
(2) 登陆部门提供的服务器。使用个人github账户进行登陆。
(3) 首次登陆,需要填写一些基本信息
Username——注册账号的用户名
Fullnmame——gerrit中显示的用户名
Email——统一使用个人分配的公司邮箱,设置过程会接收到一份验证邮件
(4) 配置public key
点击网页右上角登陆用户名处,选择下拉菜单中settings
选择SSH Public Key一项
点击Add Key添加在本机生成的public key,生成方法可参照网页提示或在网上查找
(5) 通知配置管理员添加相关代码权限
- 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. git配置用户名及邮箱
git config --global user.email 邮箱名(必须和gerrit设置的一致)
git config --global user.name 用户名
- 2. git下载产生Change-ID的commit_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文件了
- 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初步用法的更多相关文章
- Git的用法
Git的用法 Git 的也可以理解为版本控制器.版本控制器(维基的解释):维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程.此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确 ...
- git subtree用法(转)
git subtree用法 一.使用场景 例如,在项目Game中有一个子目录AI.Game和AI分别是一个独立的git项目,可以分开维护.为了避免直接复制粘贴代码,我们希望Game中的AI子目录与AI ...
- git初步使用
git初步使用 主要目的:使用代码控制工具,练习使用git 1.创建新项目 网址如下: https://github.com/kellyseeme?tab=repositories 注意每个人使用的名 ...
- git revert用法以及与git reset的区别
git revert用法 git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一次最新的提交 * git revert HEAD ...
- Git进阶用法
Git高阶用法 1. 基本概念 你的本地仓库由Git维护的三棵树组成.第一个是你的工作目录,它持有实际文件:第二个是缓存区(Index),它像个缓存区域,临时保存您的改动:最后是HEAD,指向你最近一 ...
- 转:Git: git stash 用法小结
一.应用场景 综合下网上的介绍和资料, git stash (git储藏)可用于以下情形: 发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交.这时就可以考虑 ...
- git cherry-pick用法
场景: 如果你的应用已经发布了一个版本2.0, 代码分支叫release-2.0, 现在正在开发3.0, 代码的分支叫dev-3.0. 那么有一天产品说, 要把正在开发的某个特性提前上线, 也就是说要 ...
- git clean用法
git clean用法 想批量删除branch中新加的文件(untracked files),,git reset --hard不行- 首先确认要删除的文件 git clean -fd -n ...
- Git 的用法
对于GIT 的用法,最近一直在寻找方法.网上也能找到一些方法.但是感觉说的不是很清楚,在这里我基于自己经验写一些. 对于任何一种方法都要安装GIT. 我是基于VS Code 2015 来做的. 在安 ...
随机推荐
- Linux Shell——流程控制
1. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用man 命令来查看命令的详细用法介绍.例如,我想看下 echo 的用法和各种选项.可以执行 man echo.执行结果如下: ...
- 微信公众号、H5、APP三者各有什么优势?
昨天给大家分享了一个现在很热的H5,众所周知,当下H5手机网站.微信公众号.APP这三种载体都越来越火了,而且三者都有各自的一些优势和劣势. HTML5(H5) H5之所以能引发如此广泛的效应,根本在 ...
- javascript中的==与===
一.主要区别: 1.通俗的来说,==是值的比较,而===不仅仅比较值,还比较引用的是否是同一个对象. 2.用==来比较的时候,如果两个数的操作数的类型不一样,会先转换.而===的操作数则不会进行任何转 ...
- hdu3746 kmp求循环节
CC always becomes very depressed at the end of this month, he has checked his credit card yesterday, ...
- jquery通过ajax向后台发送(checkbox)数组,并在后台接收,(发送的数据是checkedbox)
版权声明:本文为博主原创文章,未经博主允许不得转载. $(document).ready(function(){ var flag = 1; $("#delBtn").click( ...
- ST-4
1.(49-7)使用下面的方法printPrimes()完成后面的问题: (a)为printPrimes()方法画控制流图. (b)考虑测试用例t1=(n=3)和t2=(n=5).即使这些测试用例游历 ...
- Docker - 终端交互
进入容器交互终端 使用docker attach命令进入容器交互终端. 注意:如果多个窗口同时attach到同一个容器,那么所有窗口都会同步显示.如果某个窗口因命令阻塞时,那么其他窗口将无法执行操作. ...
- Java中的StringTokenizer类
/*//在java.util中的StringTokenizer类可以分析一个字符串并将字符串分解成可被独立使用的单词//1.StringTokenizer(String s)-----------为字 ...
- 企业Centos服务器分区常用方案
方案一: 一般公司生产环境,数据不是非常重要,集群架构中的一个节点服务器: /boot: 200M swap: 8G内存以下,1.5倍 8G内存以上,设置8G就够了 / : 剩下的所以存储空间 方案二 ...
- angular.js的时间指令
最后样式 html .input-group(style="max-width:150px") input.form-control(uib-datepicker-popup=&q ...