git版本控制
来源:互联网 发布:网络cpd是什么意思 编辑:程序博客网 时间:2024/06/03 16:54
1. git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
2.git配置管理:
一般,有一个中央集中库,包含4个分支:
(QA才能merge)Production:发布生产,出现生产问题,转Hotfix
(研发经理)Hotfix:解决紧急生产问题,测试后转Production
(研发经理)Release:测试并解决测试出的问题。没有问题转Production
(研发经理)Master:主干开发,开发完成转Release
3.中央集中库是唯一的,公有的。可以fork多个私有库,clone到本地(本地库)进行开发。
集中库,fork私有库与本地库之间的关系如下:
4.当在本地修改文件时,使用add添加新增的文件到本地缓存(空的文件夹git默认不添加),commit操作提交到本地库。
5.提交4步曲: (1)本地修改文件(增删改)
(2)add,新增文件到缓存区
(3)commit,提交修改文件到本地版本库
(4)push,提交本地库的差异文件到远程库
6.详细的git流程如下:
- 建立fork库,名称一般为包名-工号
- clone到本地
- 私有fork库上create branch建立topic分支,其中Branch type有Bugfix(修改bug),Feature(特性),Hotfix(紧急生产问题修改),Release(测试),custom(自定义),一般选custom,Branch name选择topic/V1.0
- 本地拉取(fetch)切换(switch)到topic分支,很重要!!!!一般不切换,android studio默认在master分支上修改,提交会很麻烦!!!
- 4步曲(详细内容,见上文提交4歩曲)(本地开发都在topic分支)
- PR(Pull Request)操作:私有fork库(topic分支)PR操作到集中库的Master分支,通知研发经理(merge)
- 开发完成,转测试:由集中库的master分支,create branch 到Release分支
- 本地测试:本地库由topic分支fetch、切换(switch)到Release分支
- 4步曲(测试出问题,本地修改都在release分支)
- PR操作:私有fork库的Release PR 到集中库的Release分支,diff查看修改,通知研发经理(merge)
- 测试完成,转生产:集中库的Release PR到集中库的Production分支,通知QA(merge)
- 同步:集中库的Release PR到集中库的Master分支 (Master一定要最新的)
- 生产出现问题,转紧急:由集中库的Production 分支,create branch到Hotfix分支
- 本地同步:本地库fetch、切换(switch)到Hotfix分支
- 4步曲(本地紧急修改,都在Hotfix分支)
- 私有fork库的Hotfix分支PR到集中库的Hotfix分支,通知研发经理(merge)
- 解决紧急问题,转生产:集中库的Hotfix分支 PR到集中库的Production分支,通知QA(merge)
- 同步:集中库的Hotfix分支 PR到集中库的Master分支
流程图,如下:
7.git丢失文件:
内容: A:修改文件1,添加文件2
B:修改文件1
提交: A(先提交):PR到master,成功
B(后提交):PR到master,失败,冲突原因:A,B同事修改了文件1
因此,B从master上拉取到本地fork库,修改冲突,commit时,文件1为modify修改,文件2为add。如果,不commit文件2,PR到master后,直接擦除了文件2。此时A更新master,文件2丢失。修改冲突时,别人add的文件一定要commit
8.注意:本地开发的时候,一定要切换到topic分支,不然修改之后无法提交。
- GIT 版本控制软件(-)
- Git 版本控制
- git 版本控制
- 版本控制 git 应用
- 版本控制Git
- git版本控制
- 版本控制软件Git
- Git 版本控制
- git-svn 版本控制
- 版本控制与git
- 分布式版本控制---Git
- Git 版本控制
- 版本控制:git
- GIT版本控制
- 版本控制--Git
- Git版本控制
- GIT(分布式版本控制)
- Git版本控制问题
- ajax跨域请求
- TCP/IP协议之struct sock结构体
- MongoDB安装
- 30天自制操作系统-第3天
- windows环境下的maven环境配置
- git版本控制
- 从源码分析design包中的侧滑导航栏(Naviogation Drawer )的实现
- SQL 数据库,表, 视图管理语句
- fastclick.js - 解决移动端 click 事件响应慢和点透问题
- libevent多线程使用bufferevent的那些事
- 程序不出结果大神帮我看看
- HDU 1005 Number Sequence (寻找循环节)
- Android中观察者模式的简单应用
- 【bzoj 1854】[Scoi2010]游戏(匈牙利算法)