一、Git和GitHub的区别
GIT:版本控制工具如:svn,git等,git是一个分布式版本控制系统
GitHub:是用于版本控制和协作的代码托管平台,GitHub 可以托管各种Git版本库,并提供一个web界面,GitHub上的项目都存储在仓库中,后者包含与项目相关联的一切:代码,项目参与者的信息,问题和bug报告等
简单来说Github是代码托管平台,是协作的工具;而Git是版本控制工具。Git不需要联网,在本机就可以使用
二、Git和GitHub的作用
简单来说就是:从主分支master中分出分支featrue,然后合并merge在一起达成代码迭代的过程
三、分支概念
首先先看一下分支图
1、master主分支
2、develop开发分支
3、release预发布分支
4、fix补丁分支(从develop分支检出,临时性分支)
5、hotfix热补丁分支(从master分支检出,临时性分支)
四、GitFlow工作流程
- 工作目录,持有实际文件
- 暂存区,临时保存改动
- HEAD,指向最后一次提交的结果
git flow
1.开发在现有master代码上,配备一个develop分支。
$ git branch develop
$ git push -u origin develop
2.其他开发从当前仓库中拉取代码,并建立自己的feature开发内容
$ git clone *****
$ git checkout -b develop origin/develop
$ git checkout -b fan-feature develop
开发完成后提交至本地develop,再push到远程
$ git add ./
$ git commit -m "test"
$ git pull origin develop
$ git checkout -b develop
$ git merge fan-feature
$ git push
$ git branch -d fan-feature
3.全部提交develop后,在其基础上建立新版本分支
$ git checkout -b release-1.0.0 develop
4.测试通过,向master和develop提交合并,删除个人分支fan-feature和原有的发布分支release-1.0.0,基于master基础上打tag。备注:向master提交是必要的,但向develop提交合并也是重要过程,因为发布分支上的新功能对正在开发的功能也是有益的。
$ git checkout master
$ git merge release-1.0.0
$ git push
$ git checkout develop
$ git merge release-1.0.0
$ git push
$ git branch -d release-1.0.0
$ git branch -d fan-feature
打tag
$ git tag -a 0.1 -m 'Initial public release' master
$ git push --tags
5.线上bug修改,直接基于master基础上新建一个分支,测试完成后合并至master及develop分支
$ git checkout master
$ git pull
$ git checkout -b issue1 master
修复bug
$ git checkout master
$ git merge issue1
$ git push
$ git branch -b issue1