5分钟入门git模式开发
本文由云+社区发表
作者:唐维黎
导语
基于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)分支,本地合并冲突比较好解决,也不会影响线上。

到此本次需求完成
此文已由腾讯云+社区在各渠道发布
获取更多新鲜技术干货,可以关注我们腾讯云技术社区-云加社区官方号及知乎机构号
5分钟入门git模式开发的更多相关文章
- 10分钟入门git简易教程
在注册了github账号之后,一度不知道该如何使用. 在仔细研究了github的官方说明文档.廖老师的教程.还有许多博主的文章之后,总算对github的操作和体系有了较为深刻的了解,还有这篇简单的入门 ...
- 【原创】30分钟入门 github
很久没更新了,这篇文章重点在github的入门使用,读者可以下载github for windows shell,边看边操作,加深印象. 好了,30分钟的愉快之旅开始吧: 一.github使用的注意事 ...
- 正则表达式30分钟入门教程<转载>
来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了 ...
- Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳
Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳 JERRY_Z. ~ 2020 / 8 / 25 转载请注明出处! 目录 Windows & Lin ...
- Shell脚本编程30分钟入门
Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...
- Objective-C 30分钟入门教程
Objective-C 30分钟入门教程 我第一次看OC觉得这个语言的语法有些怪异,为什么充满了@符号,[]符号,函数调用没有()这个,但是面向对象的高级语言也不外乎类,接口,多态,封装,继承等概念. ...
- JavaScript 10分钟入门
JavaScript 10分钟入门 随着公司内部技术分享(JS进阶)投票的失利,先译一篇不错的JS入门博文,方便不太了解JS的童鞋快速学习和掌握这门神奇的语言. 以下为译文,原文地址:http://w ...
- 十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))
十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less)) 注:本文为翻译文章,因翻译水平有限,难免有缺漏不足之处,可查看原文. 我们知道写css代码是非常枯燥的 ...
- 30分钟入门Java8之默认方法和静态接口方法
30分钟入门Java8之默认方法和静态接口方法 前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式.现在继续Java8新语言特性的学习,今天,我们要学习的是默认方 ...
随机推荐
- C++第一课:基本语法for Visual Studio 2015[个人见解]
在学习C++时,或许不了解情况的人会问:到底先学习C语言还是C++,哪个更好? 那么小编的个人见解是:你在学习时别管哪个语言好与不好,是个语言它都是好语言,关键在于你会挖掘其中存在的价值,C++可以说 ...
- AWSS3异步等待上传成功返回结果
/// <summary> /// 流上传文件 /// </summary> /// <param name="data">流内容</pa ...
- 封装axios
import axios from 'axios' // import store from '@/vuex/store.js' import router from '../router' impo ...
- 【原创】XAF 常见错误以及对应解决方法
1.Appearance Criteria设置错误 Exception occurs while assigning the 'DetailView, ID:xxx_DetailView' view ...
- thinkphp 单图上传组建成数组然后追加到一个字段
//上传的数组字段 $note1 = input('note1'); $note2 = input('note2'); $note3 = input('note3'); $note4 = input( ...
- python+SQLAlchemy+爬虫
python+SQLAlchemy+爬虫 前面分享了SQLAlchemy的知识,这次我共享一下学习用python开发爬虫再把爬出来的数据放到用SQLAlchemy的数据库上面的知识,当然我这个是带测试 ...
- live555工程建立与调试
Live555是一款开源的RTSP服务器,下载地址http://www.live555.com/liveMedia/public/ 下载下来的代码只有源文件,没有工程文件.那么如何使用VS 调试liv ...
- nginx配置ssl证书实现https访问
一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址:47.89.12.99 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的 ...
- PuppeteerSharp+AngleSharp的爬虫实战之汽车之家数据抓取
参考了DotNetSpider示例, 感觉DotNetSpider太重了,它是一个比较完整的爬虫框架. 对比了以下各种无头浏览器,最终采用PuppeteerSharp+AngleSharp写一个爬虫示 ...
- 【RL-TCPnet网络教程】第32章 RL-TCPnet之Telnet服务器
第32章 RL-TCPnet之Telnet服务器 本章节为大家讲解RL-TCPnet的Telnet应用,学习本章节前,务必要优先学习第31章的Telnet基础知识.有了这些基础知识之后,再搞 ...