Gerrit日常维护记录

Gerrit日常维护记录


Gerrit代码审核工具是个好东西,尤其是在和Gitlab和Jenkins对接后,在代码控制方面有着无与伦比的优势。

在公司线上部署了一套Gerrit系统,在日常运维中,使用了很多gerrit命令,在此收集下:

一、创建和销毁

(1)分支列表:

$: git branch

* master

prepub

product

(2)创建分支:

$: git branch prepub

(3)切换已有分支:

$: git checkout prepub

Switched to branch 'prepub'

(4)创建并切换分支:

$: git checkout -b issue1234

Switched to branch 'issue1234'

(5)删除分支:

$: git branch -d issue1234

Deleted branch issue1234 (was b904c07).

二、合并和冲突

(1)合并前要先切回 要并入 的分支。

以下表示issue1234分支合并入master分支

$: git checkout master

$: git merge issue1234

Merge made by recursive.

README | 1 +

1 files changed, 1 insertions(+), 0 deletions(-)

冲突的时候,git会报出哪些文件冲突,这时候需要手动解决完冲突方可提交。

$: git merge issue1234

Auto-merging index.html

CONFLICT (content): Merge conflict in index.html

Automatic merge failed; fix conflicts and then commit the result.

通过git status查看冲突文件。

$: git status

index.html: needs merge

# On branch master

# Changed but not updated:

# (use "git add ..." to update what will be committed)

# (use "git checkout -- ..." to discard changes in working directory)

#

# unmerged: index.html

#

打开index.html,git会在冲突位置做上标示。

<<<<<<< HEAD:index.html

contact : email.support@github.com

=======

please contact us at support@github.com

>>>>>>> iss53:index.html

解决完冲突,这时候需要手动标识该冲突已经解决,类似svn的resolved。

$: git add index.html

$: git status

# On branch master

# Changed but not updated:

# (use "git add ..." to update what will be committed)

# (use "git checkout -- ..." to discard changes in working directory)

#

# modified: index.html

#

这时候就可以提交了。

$: git commit -m "合并issue1234"

[master e3ece67] 合并issue1234

1 files changed, 1 insertions(+), 0 deletions(-)

三、管理多个分支

前面提到,git非常推荐频繁使用分支,在大量分支的情况下,我们需要对分支做好管理(曾经一次上线,开了13个分支 = =)

通过-v可以看到最后一次提交日志。

通过--merged和--no-merged来查看分支是否已经合并完成。

$: git branch --merged

* master

p4popt

$: git branch --no-merged

prepub

product

未合并的分支,在删除时会提示分支未合并。

$: git branch -d product

warning: deleting branch 'product' that has been merged to

'refs/remotes/s/product', but it is not yet merged to HEAD.

Deleted branch product (was 301ae4e).

分支管理流程

一般情况下,分支可以划分为长分支和短分支两种。

长分支

长期任务

prepub:上线前合并,根据上线列表,从各个分支中集中到该分支,统一部署提测

master:上线后合并,长期保留一个稳定可用的分支应付紧急任务

项目

较难解决的bug

新特性试验田

重构

长分支,经常会落后其他分支一大截,需要养成习惯,适时从其他重要分支进行合并, 尤其是项目分支 。

短分支

临时需求

小bug

分支可视化

git本身的log提供--gragh选项,可以提供字符界面的分支可视化视图。

$: git log --graph --pretty=oneline

| * 50cc7a78b7f2704a2014afa3667f6ac5b5b47374 merging refs/remotes/origin/prepub into HEAD

| |\ 

| | * 8f685bd1be3757effe32d6ff37f86bd07dd2b549 又被无情地冲掉了代码

| * | 75a17b4ad610327a9b0e1eecfc6c4bf9cade7359 修改icon

| |/ 

| * 146a0990de450c854b1a7d9995e12979fff2d537 merging refs/remotes/origin/prepub into HEAD

| |\ 

| | * 93b379680796eb443961bb8c59008f8ae5678be4 Merge branch 'prepub' of search.ued.taobao.net:projects/search into prepub

| | |\ 

| | * | 8b93380ccfb9020bf8f8e1e8a4a553601de3c788 p4p加上refpid,开发给出来的配置是 P4P_refpid

| * | | 08201de89834f6fecb195c2b7c3546b5cafccc85 秒杀折扣浮动层样式

| | |/ 

| |/| 

| * | 0f4d1df17f79c7aa3ca3d36ab848c10b78029010 修改icon

| * | ae719fc29cc550321f284323db06a294b97c1398 p4p创意优化

| |/ 

| * a6d4501e1456589d30ab1a5800b651876629c8ca 修改icon

git还有很多GUI工具,可以提供可视化地分支走势图,比如gitk,qgit,GitX等等。

远程分支

至今为止,前面所有提到的概念都是直接本地操作的,并不需要任何网络连接。

而git本身是一个分布式代码管理工具(DVCS),所以分支管理上,存在本地分支和远程分支两种概念。

可以简单的理解,远程分支就是别人的本地分支push到服务器上的时候产生的。比如master就是一个最典型的远程分支(默认)。

$: git push origin master

除了master之外,我们还可以随便创建分支,然后push到服务器上去。

$: git push origin prepub

Counting objects: 27, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (15/15), done.

Writing objects: 100% (15/15), 7.30 KiB, done.

Total 15 (delta 10), reused 0 (delta 0)

To git@search.ued.taobao.net:projects/search.git

1b95a57..779dbe1 prepub -> prepub

远程分支的标识形式为{remote/branch},比如origin/product。

$: git branch -a

master

p4popt

* prepub

product

remotes/origin/HEAD -> origin/master

remotes/origin/master

remotes/origin/p4popt

remotes/origin/prepub

remotes/origin/product

远程分支和本地分支需要区分,所以,在从服务器上拉取特定分支的时候,需要指定本地分支名字。

$: git branch product origin/product

Branch product set up to track remote branch product from origin.

而1.6.2以上版本的git,可以通过--track选项,简化这一过程。这也是为什么直接执行git clone的时候,会自动创建本地master分支的原因。(实际上,pull操作相当于fetch+merge。)

$: git checkout --tr

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,880评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,915评论 0 11
  • Lesson 3: Using GitHub to Collaborate 3.1 Creating a GitH...
    赤乐君阅读 6,067评论 3 11
  • 昨天是端午假期最后一天,过得很平淡。前边在洗衣服,我在后边看王小波。昨天最大的收获就是在书评区发现了一部纪录片--...
    liuliuliu2016阅读 110评论 0 0
  • 呀!还没填写团训报名表呢,快去填了再来看~ 教练的叮嘱:今天的主课表只有1组2000m的训练,大家跑的時候专心跑,...
    himeteora阅读 368评论 0 0