1、背景:之前在开发一个项目时,用tfs管理代码,并用“禁止多人编辑”来避免冲突,但仅适用于开发团队较小时。缺点:
(1)、开发团队较大,开发人员较多时,会出现经常互相锁,增加沟通成本。比如增加文件时会锁住proj项目文件,其他人员不能增加文件。
(2)、当项目1.0版上线时,会继续开发增加其他功能,此时根据功能块和进度计划打出多个分支,打分支比较麻烦。
所以改用git。
Git分支和合并极其方便,有着成熟的开发代码管理套路。
2、分支介绍
需要安装gitflow小插件,方便打分支
(1)master主分支,掌管最成熟靠谱、测试过的代码,用来发布部署
(2)develop属于开发代码主线,相当于多个开发人员的代码主线。其下分feature branch功能分支,按功能任务等分给不同开发人员的分支。开发人员完成任务时合并到develop分支。
(3)release分支是测试人员用,测试从develop上打出release分支进行测试。如果出现bug,开发人员需要直接在release分支上解决bug,不要在develop上修改。
A:如果测试发现不理想,不上线,则把代码合并回develop上去(上面有修改bug的代码)
B:测试顺利,则必须把release代码分别合并到develop和master分支上去。务必两个都要合并。
(4)hotfixes:产品上线后突出紧急bug,急需解决,则从master打出hotfixes分支,解决完后合并到develop和master分支上去。务必两个都要合并。
(5)能够按照tag等获取特定版本代码。
3、git中常用小工具
(1)积压工作项 backlog,用于管理任务进度,根据任务名字来定义feature branch名字
4、操作细节
(1)vs——扩展和更新——联机——gitflow for 2017
(2)有些vs2017可能没安装git相关组件,重新运行vs2017安装文件——修改——单个组件——适用于windos的git
(3)新建team project——agile——git——finish
4、设置——存储库设置——真实邮箱——d:\tfs2018——选择差异/合并(点两下),显示成visual studio 全局
5、clone代码后,旁边有个此外开发,千万不要点不再提示
6、看Home主页,是否本project
7、gitflow——initialize只能配一次,直接点,默认ok
8、如果git地址为Ip的情况,可以改为域名形式,方便切换代码服务器。
9、切换分支
右下角为当前分支,双击下可切换分支
10、务必用gitflow新建分支,千万不要用vs的新建分支
11、合并feature分支并删除
切换到develop分支
并且主页——分支——develop——右键合并自
合并完feature分支后,可以删除
12、git的提交是将代码提交到本地存储库,然后点同步才能提交到服务器。
13、新建解决方案时,new solution—勾选git存储库
14、原有代码添加到git:(1)在服务器端增添项目,并且将团队成员加入,不要等待代码上传完毕后再加人,容易有权限bug(2)连接git上的项目地址,配置代码库,克隆,此时文件夹是空的,没有代码。(3)然后将原有代码直接拷贝到文件夹下,打开——更改——同步——push。此时操作的是master分支。可以去服务器上查看下。(4)配置gitflow,initial初始一下,出来develop分支,右击,push branch,将develop分支提交到服务器。
15、右击feature branch——publish推送到server,同事可获取。一般不会把feature branch提交到server
16、新项目提交到git时只有master分支。需要登录git服务器管理端,创建拉取请求,从master到develop
17、分支权限设置。
(1)分支安全性,设置每个角色的权限时,需要修改下1处的相应东西,再保存更改才有效果(小坑)
(2)分支策略,可以对分支设置审阅人,开发人员不能直接提交代码,需要发出pull request,审阅人看到消息后,审核同意后,代码才能提交到服务器端