GERRIT使用说明 配置管理-高峰 2017-10-07.

Slides:



Advertisements
Similar presentations
迪士尼公主裙衫变化记. 《白雪公主和七个小孩人》 《白雪公主和七个小矮人》,是世界电影史上第一部长动 画片,也是迪士尼的第一部。《白雪公主》不仅为迪斯尼 带来了第一尊奥斯卡小人,更是拯救迪斯尼于水火的贵 人 —— 在经济大萧条的 1937 年的美国,《白雪公主》为迪 斯尼赚到了 850 万美元,这约等于现在的数亿美元!
Advertisements

高一七班 研究性学习小组 当我们正为寻找什么课 题而烦恼时,忽见一 精光从我面前闪过。 艾玛,原来是我同桌 眼镜反射,自此 “ 眼镜 ” 这课题被我付诸行动。 我们为此进行了研究 讨论学习 下图为组员在查阅资料.
index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
教務處註冊組 /7 (二) 10 : 00 至 15 : 00 止 ★ 6/8 彙整報名資料後, 6/9 向高中承 辦學校報名 ★ 因校內作業時間緊迫,逾時恕不 受理。 校內報名時間.
手动换页 域外风情系列 儿子去美国留学,毕业后定居美国。还给我找了 个洋媳妇苏珊。如今,小孙子托比已经 3 岁了。 今年夏天,儿子为我申请了探亲签证。在美国待 了三个月,洋媳妇苏珊教育孩子的方法,令我这 个中国婆婆大开眼界。
我的未来不是梦 攀枝花市经贸旅游学校. 1. 文中案例王萍苦恼的原因是 什么? 2. 你有哪些办法可以帮助王萍? 导入 思考  谁来帮帮她?
99學年度第1學期導師輔導工作座談會 全校性共同必修服務學習課程 報告單位:學務處領導知能與服務學習中心.
三水区安监局 企业安全用电 2013年4月.
资源平台应用培训 武汉市交通学校信息化建设指导委员会.
版本控制的史前时代 用存储介质拷贝代码 代码相互覆盖,不知道哪个版本是正确的 搞错了无法恢复,需要定期手工备份
大家 午安.
Chapter 7 心意-記憶與失憶 第一節 記憶力 第二節 注意力 第三節 失憶.
《3-6岁儿童学习与发展指南》概述.
吴宏鹏 源自:
广西师范大学教科院马佳宏 电 话 0773- (O) 高校教师资格认定考试的若干事项 广西师范大学教科院马佳宏 电 话 0773- (O)
104年度國立宜蘭大學新進主管研討 主計業務宣導說明
102年實施之高中職及五專多元入學(含免試入學)之招生機制
读者与图书馆 2009年春季版 总第 15 期 山 东 交 通 学 院 图 书 馆 2009年3月.
104年12月11日.
快乐猜猜猜 “旧四大件”? (缝纫机、自行车、手表、收音机) 改革开放 “新四大件”? (彩电、冰箱、洗衣机、空调)
全面准确学习领会 党的十八精神.
我在哈佛、麥肯錫 學到的一流工作術 富坂美織◎著.
SPM 中国文学 第三部分 戏剧.
2012级暑期放假安全教育 及宿舍搬迁工作布置会 北京化工大学理学院 辅导员:曹鼎 2013年6月6日.
系統分析與設計 系級:資管三B 姓名:朱秋儒 學號:
一言之辩强于九鼎之宝 三寸之舌胜于百万雄师
贴近教学 服务师生 方便老师.
义务教育新课程标准实验教科书 九年级历史下册课堂教学设计
会计技能综合实训 ——会计分工.
2015年云南财经大学图书馆 新生入馆教育考核试题 答题指南
一、汽车空调基本概念 1、汽车空调发展史 我国于70年代,最早的汽车空调装置使用在长春一汽红旗轿车上。1976年,由原上海内燃机油泵厂今上海汽车空调机厂制造汽车空调,配套在上海牌轿车SH760A轿车中 。
克薩技術 vs 傳統配種 克薩人.
Subversion (SVN) Presented by 李明璋 R /2/21
GIT 分布式管理工具.
减免税管理系统 演示汇报 汉寿县地方税务局 王成名· 下面由我向各位介绍,减免税管理系统,请各位领导多提宝贵意见。
珍惜时间 提高效率 初二1班
GitHub 2015/10/28 鄭雅馨.
Android高手进阶 - Android源码下载 任玉刚
开源软件分布式版本控制器 GIT Linus的第二个伟大作品 演讲者:喻鹏.
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
从入门到实践.
Introduction to Git Lu Li
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
欢乐玩转GIT 讲师:FREE QQ:
An introduction to Subversion
日构建
Git & github By 宋正倫 (修訂by jmchen).
Feature and function introduction to GIT & Linux June 22, 2013
雲端計算.
环境配置及使用.
Service and Innovation Division
中華大學 資訊工程學系 報告人:資訊工程學系 許慶賢 系主任.
MyiLibrary® ‘Search & View’ Website Training
Git使用入门 —johnson.
選擇勞退新制,終身免煩惱 勞工退休金新制 說明會.
如何检索统计申请与在研项目(科研人员) “科研之友”技术支持小组
設計者:台中市重慶國小 張祐榕.楊晟汶.張儷齡
序言 報告內容: 你對父母的感覺 你與父母的關係 你是否與父母同居 你與父母見面的時間 每天與父母的談話時間 與父母談話的內容 結論 感想.
B A C D ADD YOUR TEXT ADD YOUR TEXT ADD YOUR TEXT ADD YOUR TEXT
MyiLibrary® ‘Search & View’ 使用指南
議題: 複製人.
如何連上工作站 WorkStations: 1. Solaris 2. Linux Use X-Win32 (for Solaris)
MyiLibrary® ‘Search & View’ Website Training
MyiLibrary® ‘Search & View’ 使用指南
“上海市教师教育课程资源共享管理平台” 学分银行操作指南
Git 新一代版本控制系统 superwen.
Git使用简介 rainzha
中式烹调技艺 第五章.
績優教師分享 美容保健科 林品瑄 教師.
Concurrent Versions System (CVS)
Presentation transcript:

GERRIT使用说明 配置管理-高峰 2017-10-07

目录 Git学习 账号注册 Repo配置 获取下载代码命令 Repo 命令

我们自己Git服务器上高通基线-master分支 开发模式 高通服务器 我们自己Git服务器上高通基线-master分支 主分支-基于高通基线拉出-基线稳定分支 对应定制项目A分支 对应定制项目B分支

Git学习 在你自建的Git本地仓库中,有三个区域:工作目录、暂存区、HEAD 工作目录: 有.git文件夹的目录; 暂存区(index或者stage):在本地目录中被git跟踪的文件,类似一个缓存区域,临时保存你做的改动; HEAD:指向最近一次提交后的结果。 用一个比喻来描述一下这三个区域: Git工作流:假设你是一个学生,你需要写一门课的作业,作业有好几张试卷和几本练习题,写好之后把作业交给老师。 你把所有作业放在桌上开始写,这里就是你的“工作目录” 当你写完一张试卷,把它放进你的书包里,它就进入了“暂存区” 等你把作业都写完了,放在书包里带到学校,全部交给了这门课的老师,他就是HEAD所指向的位置

Git学习 工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪 未跟踪的文件的改动不受到Git的版本控制 已跟踪的文件,即被纳入版本控制的文件,又分为未修改(unmodified) 、已修改(modified)、已暂存(staged)三种状态。 当在工作目录中新加入一个文件时,它处于未跟踪状态,这表示其没有纳入Git的版本控制。 通过 git add 命令可以将其加入跟踪,并同时放入暂存区。 一个已经被跟踪的文件,如果没有做过新的修改,就是未修改状态。 一旦对其做了改动,就变成了已修改状态。通过 git add 命令可以将已修改的文件放入暂存区。 初次克隆某个仓库时,工作目录中所有文件都是已跟踪且未修改的状态。 git commit 命令会将暂存区中的文件提交至HEAD所指向的分支。当被commit之后,暂存区的文件将回到未修改状态。

几种后悔药 撤销一个服务器上提交 场景: 你刚刚用git push将本地修改推送到了远程服务器,这时你意识到在提交中 有一个错误。你想撤销这次提交。 撤销命令:git revert SHA 原理:git revert将根据给定SHA的相反值,创建一个新的提交。如果旧提交是 “matter”,那么新的提交就是“anti-matter”——旧提交中所有已移除的东西将 会被添加进到新提交中,旧提交中增加的东西将在新提交中移除。 这是Git最安全、也是最简单的“撤销”场景,因为这样不会修改历史记录——你 现在可以git push下刚刚revert之后的提交来纠正错误了。

几种后悔药 本地commit修改撤销 场景: 你只是在最后的提交信息中敲错了字,比如你敲了git commit -m “Fxies bug #42″,而在执行git push之前你已经意识到你应该敲”Fixes bug #42″。 撤销命令: git commit –amend或者git commit –amend -m “Fixes bug #42″ 原理: git commit –amend将使用一个包含了刚刚错误提交所有变更的新提交, 来更新并替换这个错误提交。由于没有staged的提交,所以实际上这个提交只是 重写了先前的提交信息。

几种后悔药 工作目录修改撤销 场景:你正在编辑的文件被保存了但是你的编辑器恰在此时崩溃了。此时你并没有 提交过代码即并没有做add操作。你期望撤销这个文件中的所有修改——将这个文 件回退到上次提交的状态。 撤销命令: git checkout — 原理: git checkout将工作目录(working directory)里的文件修改成先前Git已 知的状态。你可以提供一个期待回退分支的名字或者一个确切的SHA码,Git也会 默认检出HEAD——即:当前分支的上一次提交。 注意: 用这种方法“撤销”的修改都将真正的消失。它们永远不会被提交。因此 Git不能恢复它们。此时,一定要明确自己在做什么!(或许可以用git diff来确定)

几种后悔药 重置本地修改 场景: 你已经在本地做了一些提交(还没push),但几次提交都不正确,你想撤 销最近的三次提交,就像它们从没发生过一样。 撤销命令: git reset –hard SHA 原理: git reset将你的仓库纪录一直回退到指定的最后一个SHA代表的提交,那些 提交就像从未发生过一样。默认情况下,git reset会保留工作目录(working directory)。这些提交虽然消失了,但是内容还在磁盘上。这是最安全的做法, 但通常情况是:你想使用一个命令来“撤销”所有提交和本地修改——那么请使用 –hard参数。

Git对分支的操作 git创建分支其实就是创建了一个新的指针 git branch myfeature ---创建myfeature 分支并没有切换到此分支上需要下面命令切换 git checkout myfeature ----切换到myfeature 分支 git checkout -b myfeature develop ----从 develop 分支建一个 feature 分支,并切换到 feature 分支 git branch --查看本地分支 git branch –a ----查看远程分支 git remote show origin ---查看本地分支对应远程哪个分支,以便push git branch –d myfeature ---删除本地myfeature 分支 git merge myfeature ---合并myfeature分支到develop分支上,需要明确此时你的工作分支是develop

Git一次完整提交 git add 1.txt --提交修改到暂存区 git commit –m “msg” --提交修改到本地HEAD git push origin dev:maser --推送修改到远程中心仓库 git push origin dev:refs/for/master ----gerrit命令推送修改到gerrit评审分支, 然后评审者submit到中心仓库

Gerrit 代码审核服务器的工作流程

账号注册 我们的gerrit服务使用http认证方式,所以需要向管理员申请 账户,邮件发送后管理员创建好账户。 在自己本地生成公钥对,命令:ssh-keygen -t rsa。一路回 车yes,查看~/.ssh目录下会有两个文件生成,id_rsa和 id_rsa.pub,后面文件是公钥,需要上传到gerrit服务器, 复制文件内全部内容到settings->ssh-keys->AddKey->保存 在本地设置git全局环境,如下两个命令 git config --global user.name "your name“ git config --global user.email "your email"

注册账户 设置邮箱地址 设置后邮箱会收到一份邮件复制邮件地址激活邮箱 激活后如图一名字地下就会有邮箱 设置完成后在本地执行如下 ssh -p 29418 admin@192.168.0.100

设置repo 1.获取repo仓库,git clone http://gerrit.ontim.cn:8081/ontim-repo mkdir ~/bin PATH=~/bin:$PATH git clone http://gerrit.ontim.cn:8081/ontim-repo cp ontim-repo/repo ~/bin chmod a+x ~/bin/repo

获取代码下载地址 向管理员或者spm获取代码下载地址 例如8953的下载地址: repo init -u ssh://admin@192.168.0.100:29418/ontim/manifest admin需要换成gerrit登录名 然后执行repo sync

Repo命令 repo start(创建并切换分支) repo start <newbranchname> [--all | <project>…] 刚克隆下来的代码是没有分支的,repo start实际是对git checkout –b 命令的封装。为指定的项目 或所有项目(若使用—all参数),以清单文件中为设定的分支,创建特性分支。这条指令与git checkout –b 还是有很大的区别的,git checkout –b 是在当前所在的分支的基础上创建特性分支, 而repo start是在清单文件设定分支的基础上创建特性分支。 repo start dev --all 假设清单文件中设定的分支是master,那么执行以上指令就是对所有项目,在master的基础上创 建特性分支dev. repo start dev platform/build 假设清单文件中设定的分支是master,那么执行以上指令就是对platform/build项目,在master的 基础上创建开发分支dev

Repo命令 repo checkout(切换分支) repo checkout <branchname> [<project>…] 实际上是对git checkout 命令的封装,但不能带-b参数,所以不能用此命令来创 建分支。 Example: repo checkout dev repo checkout dev platform/build

Repo命令 repo branches(查看分支) repo branches [<project>…] repo branches platform/build ---查看某一个仓库仓库分支 repo diff(查看工作区文件差异) ,用于分别显示各个项目工作区下的文件差异 repo diff [<project>…] repo diff ---查看所有项目 repo diff platform/build ---只查看其中一个项目

Repo命令 repo status(查看文件状态),对git diff-index、git diff-filse命令的封装,同时显示 暂存区的状态和本地文件修改的状态 repo status platform/bionic 以上的实例输出显示了platform/bionic项目分支的修改状态 repo upload repo upload相当于git push,但是又有很大的不同。它不是将版本库改动推送到 克隆时的远程服务器,而是推送到代码审核服务器(Gerrit软件架设)的特殊引用上, 使用SSH协议。代码审核服务器会对推送的提交进行特殊处理,将新的提交显示为 一个待审核的修改集,并进入代码审查流程,只有当审核通过后,才会合并到官方 正式的版本库中。