42

5分钟入门git模式开发

 5 years ago
source link: https://segmentfault.com/a/1190000018162170?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

作者:唐维黎

导语

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

Q3YVN3m.png!web

目前项目已逐步从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..

Y7n6fii.png!web

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

git clone XXXXX.git

YFvQFz7.png!web

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

2. 创建本地分支

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

2yyIjmF.png!web

NFR3I3q.png!web

3. 查看及切换当前分支

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

F3uAJj7.png!web

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

qMbyumJ.png!web

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

4. 开发完成后Commit

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

7J3Yr2n.png!web

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

5. 合并分支

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

fEzAruU.png!web

6. 提交到线上仓库

右键 -> TortoiseGit -> Push...

auuIZjE.png!web

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

7. 合并到master主干分支

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

63EFNfi.png!web

到此本次需求完成

此文已由腾讯云+社区在各渠道发布

获取更多新鲜技术干货,可以关注我们 腾讯云技术社区-云加社区官方号及知乎机构号


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK