专栏首页腾讯DevOps5分钟入门git模式开发
原创

5分钟入门git模式开发

腾讯工蜂Git:基于Git的企业级协作开发解决方案,腾讯未来研发关键系统

https://code.tencent.com

腾讯工蜂用户:唐维黎

导语

基于gui工具TortoiseGit让你快速进入git开发模式。

目前项目已逐步从svn移步到git开发模式,其中也针对git统一协议了适合git的开发规范, 最重要一点就是分支模型的,为了规范开发,不直接在主干上修改代码,一切代码都提交至分支dev,然后再由分支合并到主干master。 首先保证每个仓库下有以下两个常驻分支(永远不删除的分支): master:主干分支,始终保持跟外网服务器一致,只用于外网发布,这样就可以保证文件不会带出去的风险; dev:基于master创建,用于开发新功能和新需求的分支。

开发流程如下:

1. 基于dev分支创建dev-xxx分支,开始进行普通的常规需求开发,开发完成后,Commit提交代码到本地仓库,如果这个新项目或者功能比较大有多人协同开发,怕会相互影响对方的代码,现从dev-xxx分支创建新分支dev-xxx-user进行开发,前提是dev-xxx分支需要push到线上;

2. 开发完成后将dev-xxx分支合并到dev分支,然后部署dev到测试环境进行测试,测试过程中有bug的话修复完后同样合并到dev分支。如果是在多人协同开发的情况下先将dev-xxx-user分支合并到dev-xxx,再将dev-xxx合并到dev分支;

3. 测试完成后,将dev分支合并到master分支,然后进行正式发布。发布完成后删除dev-xxx和dev-xxx-user分支; 如果担心在最后一步合并代码到master时有问题,也可以在测试的时候随时更新到本地master(先checkout master分支到本地),但不要push到线上,本地master 如果一定push到线上的话,这就要保证你的需求未测试发布前,别人不会发master与你相关的文件~

另外,如果是外网BUG或者日常,就可以在master上直接创建分支,修复完成后发布,定时同步dev分支,这样可以提高效率 ~ 下面以一个简单的需求来实际操作下,看看TortoiseGit的使用方法: (前提本地是有安装git和TortoiseGit)

1. 克隆代码仓库到本地

在指定文件夹下,右键 -> Git Clone..

点确定后会提示你输入用户名和密码,这个跟svn类似 然后等待一会代码就成功克隆到本地了,速度比svn要快很多,另外也可以直接用命令行的方式

git clone XXXXX.git

代码克隆后,后续分支都是在本地的同一份代码上进行分支创建,而无需再次克隆~

2. 创建本地分支

创建分支前请实时git pull线上仓库到本地,保证本地dev是最新 进入刚克隆下来的目录,右键 -> TortoiseGit -> Create Branch..

3. 查看及切换当前分支

右键 -> TortoiseGit -> Switch/Checkout...

切换成功后,可通过Git bash查看是否真的切换过来

也可以在命令行直接git branch查看,高亮的为当前分支 重要:注意在开发的时候请保证当前自己所修改的代码是当前需求的分支

4. 开发完成后Commit

右键 Git Commit -> 'dev-xxx' 提交记录一定要填 ,其它信息可选

Commit到本地仓库,Commit这里也可以直接一次性push到线上仓库,但一般情况下不会这么干, 在多人协作的时候,其他人要合并代码到dev-xxx分支时可以直接一键commit+push

5. 合并分支

首先切换到要合并的目标分支(切换分支见上述3),本次要将dev-xxx合并到dev分支,我们切换到dev分支, 右键 -> TortoiseGit -> Merge...

6. 提交到线上仓库

右键 -> TortoiseGit -> Push...

会要求你输入用户名和密码 提交成功后,提单部署测试环境

7. 合并到master主干分支

测试通过并完成后,将dev分支合并到master并push到线上仓库,提单发布外网, 合并到master的时候,可以将线上的master分支checkout到本地,然后进行本地的dev和master合并,再push到线上, 也可以直接将本地dev直接合并到线上master(remotes/origin/master)分支,本地合并冲突比较好解决,也不会影响线上。

到此本次需求完成


扫描以下二维码,研发管理从此高效、轻便、可靠

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Git的艺术—分支管理

    Git的开发者—— Linus Benedict Torvalds,22岁就创建了Linux系统,发展到2005年的时候,用了仅两周的时间写了一个分布式版本控制...

    腾讯工蜂
  • 写给UI开发的Git入门指南

    Git是作为一款最先进的分布式版本控制系统在公司内外越来越流行,目前WeGame中也有部分项目陆续切换到Git,本文根据自己在项目中的使用经验整理而成,期望能帮...

    腾讯工蜂
  • Git Code Review设置与使用

    自从转到git上之后,已经一年多没有code review了(哈哈,捂住无辜的小脸)。但是坦白来说,code review绝对是利大于弊的。不仅可以让自己把控代...

    腾讯工蜂
  • 快速学习Git-Tortoise Git实现分支管理

    在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD指...

    cwl_java
  • 团队中的 Git 实践

    如果一个团队在使用 Git 时没有一些规范,那么将是一场难以醒来的噩梦!然而,规范固然重要,但更重要的是个人素质,在使用 Git 时需要自己养成良好的习惯。

    良月柒
  • 浅谈基于 Git 的版本控制工作流

    因此,在本文中,我们就从「[版本控制简史」出发,揭开「基于 Git 的版本控制工作流」的神秘面纱。

    CG国斌
  • Git分支管理策略

    文章转自:http://www.ruanyifeng.com/blog/2015/08/git-use-process.html。感谢作者辛苦撰写 眼下最流行的...

    joshua317
  • 【Git学习笔记4】关于远程仓库的必知、创建与合并分支(fast foeward模式)及解决冲突

    在【Git笔记1】本地项目与GitHub远程仓库互联中,我们已经知道远程仓库这么回事,但是并不知道这究竟是啥?

    小小詹同学
  • Git分支(一)

    分支是Git的杀手级功能,有了这个,才使得Git变得与众不同,脱颖而出。一般而言,会创建master分支和devloper分支,主分支是项目管理者才有权利改变的...

    zy010101
  • git merge后 丢失文件 以及 代码

    git merge 快速合并时会以某个文件新的操作为准,如果master将一个dev合并进来,而dev分支中对某个文件进行过删除操作,那么merge之后mast...

    MickyInvQ

扫码关注云+社区

领取腾讯云代金券