Git和GitHub的区别


一、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