大厂的第一堂课,完整的git流程

前言

大厂有着数量庞大的代码库以及复杂的权限验证体系,囊括着开发、测试、上线的完整流程。因此必然会有一套代码仓库的管理流程,而不再是个人的代码随意开发、随意提交。这也是我从小厂出来学习到的第一堂课——完整的git提交流程。下面我们以一位头条大佬的仓库为例,讲解如何对线上仓库进行开发

fork仓库

Interview-Book 这是头条大佬的仓库,我们可以看到他的分支信息

git-1.png

我们可以看到有三个分支。假定这是一个发布到生产环境的应用,master一般用来存放线上分支,即这个仓库存放的是线上正在运行的代码,另外的仓库便是开发分支,一般会把开发分支设置为默认仓库,避免误提交代码线上(线上一般会禁止提交),我们先fork一个到自己的仓库

本地开发

git-2.png

接着我们就可以clone仓库到本地

git-3.png

拉取到本地后注意 VSC 右下角的分支,github默认是master分支,要手动切换到开发分支,并在remote中添加线上仓库

git remote add upstream https://github.com/Mountain-Buzhou/Interview-Book

远程仓库是头条大佬的仓库,并且一般自己的github仓库命名为origin 线上仓库命名为upstream。这个时候我们就有了三个仓库,分别是:

  1. 线上仓库(发布项目的git仓库,一般是拥有者是团队或TL)
  2. 自己仓库(自己fork线上仓库到自己的github)
  3. vscode本地仓库(git还在本地有一个仓库)

到目前为止,我们还不能直接进行开发,而需要从这个dev仓库(在这里是version_alpha)切出一个分支

git checkout -b feat/add-artical

命名为feat:xxx, 即新添加的需求


git-4.png

我们切换了一个新的分支,在这个新的分支上添加一些修改


git-5.png

我把以前写的一篇二叉树相关的文章添加到头条大佬Book中,接着进行commit, commit的内容也应该遵守规范,一般来说是

  1. fix:xx 表示修改了XX代码
  2. feat:xx 新增了XX需求
  3. style:xx 修改了部分的样式
  4. delete:xx 删除了某些无用的部分

标题最好能简短的描述出这个commit干了些什么,具体内容可以在comment中详细写

提交PR

git-6.png

feat感觉命名错了,因此改成了add:增加二叉树相关内容


git-7.png

在合并之前我们需要做codereview, 在我们小组所有进行合并的代码必须要进行codereview并且每一个组员都可以参加,codereview是让自己进行提升以及帮助别人纠错的一个重要途径。通过看别人的代码,可以了解到不同的思维。点击 Files changed查看这次更改的代码

git-8.png

在代码的行数处,鼠标移到上面就会出现一个 + 号,点击便可以出现一个浮动的 comment 框,我们就可以针对这行代码进行提问

合并PR

确认无误后,我们便可以等待头条大佬合并PR到dev(这里是version_alpha)分支,头条大佬合并以后我们就可以在本地仓库 切换到自己的 远程分支 origin/dev 拉取 upstream/dev到本地,然后再推送到 origin/dev 这样就完成了一次完整的 PR

hotfix

有些时候产品会要求紧急上线一个需求,这个时候需要在线上的代码更新,因此我们会从线上分支切一个分支到自己仓库,然后在这个分支上进行修改,修改完以后会提两个PR命名为:hotfix:xxx 到dev仓库和master仓库

完整的流程

git-9.png

性感面试官,在线内推

今日头条 likun.liyuk@bytedance.com

饿了么 mingjun.wu@ele.me

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

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,579评论 4 54
  • 三大区域: 工作区 → 缓存区 → 本地仓库 一 、 使用 git config 命令进行配置: git ...
    Manchangdx阅读 2,792评论 0 2
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,399评论 9 163
  • 乱世休论德与道,满纸皆是利与权。 在三国演义里面,郭嘉早丧,贾诩除了抹书间韩遂之外几乎隐身,程昱最著名的计策是坑了...
    慕尧VIVIENNNE阅读 653评论 2 3
  • 给茨木童子 深夜睡不着,刚好痒痒鼠在弄520告白。就让我有点念旧,想起来刚入阴阳师的日子。 严格来说我是去年过...
    见春过处阅读 228评论 0 1