概述
通常在开发的过程中.我们都会用到版本 管理软件,在众多版本管理中,使用最多的莫过于SVN 和 GIT
不同的是SVN属于集中式,而GIT则是分布式.相对于集中式分布式有很多特点
其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便.
但是分支管理如果不加注意的话,就会让版本库变得十分混乱,为了能有一个清晰的版本演化路劲,我们必须做好分支模型和策略.
一般在开发的过程中,首先在版本库初始化的时候会默认创建一个分支,这个分支就是主分支,在Git 中叫做Master.通常情况下,代码库应该有且仅有一份主分支,所有提供给用户 的版本都是在这个分支上的,就是所谓的Tag 分支,
初始化
1.创建版本库:
在我们工程目录下,此命令就是把这个目录变成Git可以管理的仓库
$ git init
2.添加文件
$ git add readme.txt
3.提交仓库
$ git commit -m “wrote a readme file”
4.创建远程仓库,生成ssh
$ ssh-keygen -t rsa -C “youremail@example.com”
5.本地仓库与远程库的关联
$ git remote add origin “url”
6.提交
$ git push -u origin master
分支管理
如果Master主分支主要是正式版本.那么我们在开发的时候一般使用的是开发分支.
1.创建Develop分支
git checkout -b develop master
2.在开发分支开发完成后一般都会Merge到Master分支用于发布稳定版本
切换到Master分支
git checkout master
对Develop分支进行合并
git merge –no-ff develop
在远程仓库中我们一般也是创建这两个常用仓库
3.同时,我们也会常见一些其他的必须仓库,通常是临时仓库,本地使用完后,要删除分支
1.常见的有 功能(feature)分支
2.预发布(release)分支
3.修补bug(fixbug)分支
临时分支
1.功能(feature)分支 是从develop份出来的 ,主要用于开发某种特定功能,开发完成后,要再并入Develop,并删除分支
创建一个功能分支:
git checkout -b feature-x develop
将功能分支合并到develop分支
git checkout develop
git merge –no-ff feature-x
删除feature分支
git branch -d feature-x
2.预发布(release)分支是正式版发布之前的版本.预发布结束以后,必须合并进Develop和Master分支
创建一个预发布分支:
git checkout -b release-x develop
稳定后,合并到Master
git checkout master
git merge –no-ff release-x
再合并到develop分支
git checkout develop
git merge –no-ff release-x
git tag -a x.x.x.x
删除预发布分支
git branch -d release-x
3.一般开发中的bug fix都会在Release版中处理掉了,但是如果Master版本在正式发布后,难免也会出现bug,这时候就需要我们创建一个bug fix 版本,
此版本是从Master分出来,最终要合并到Master 和Develop中
创建一个修补bug分支
git checkout -b fixbug-x master
fixed 后,合并到master分支
git checkout master
git merge –no-ff fixbug-x
git tag -x.x.x.x
再合并到develop分支
git checkout develop
git merge –no-ff fixbug-x
删除”bug分支”:
git branch -d fixbug-x