Git 多人开发

为什么要学Git

作为一个开发新手,之前对写代码的认知局限在实现一个功能,做一个小Dome,但是在正式参与开发一个项目之后才发现开发一个项目不仅需要一个写代码,还需要用到Git进行版本控制的软件源代码托管服务。这个时候如果对Git多人开发的机制不是很清楚,就会极大影响开发得效率,在这就给大家讲一讲Git多人开发的需要用到的知识。

源仓库

在项目的开始,项目的发起者构建起一个项目的最原始的仓库,我们把它称为origin。

源仓库的有两个作用

1、汇总参与该项目的各个开发者的代码

2、存放趋于稳定和可发布的代码源仓库应该是受保护的,开发者不应该直接对其进行开发工作。只有项目管理者(通常是项目发起人)能对其进行较高权限的操作。

开发者仓库

在开发之前,公司会搭建一个远程源仓库,在开发中任何开发者都不会对源仓库进行直接的操作(一般新手也不会也你这个权限去操作源仓库),源仓库建立以后,每个开发者需要做的事情就是fork一份源仓库,作为自己日常开发的仓库。

每个开发者所fork的仓库是完全独立的,互不干扰,甚至与源仓库都无关。

分支(Branch)

我们为git定下一种分支模型,在这种模型中,分支有两类,五种

永久性分支

master branch:主分支

develop branch:开发分支

临时性分支

feature branch:功能分支

release branch:预发布分支

hotfix branch:bug修复分支

永久性分支

永久性分支是寿命无限的分支,存在于整个项目的开始、开发、迭代、终止过程中。永久性分支只有两个master和develop。

master:主分支从项目一开始便存在,它用于存放经过测试,已经完全稳定代码;在项目开发以后的任何时刻当中,master存放的代码应该是可作为产品供用户使用的代码。所以,应该随时保持master仓库代码的清洁和稳定,确保入库之前是通过完全测试和代码reivew的。master分支是所有分支中最不活跃的,大概每个月或每两个月更新一次,每一次master更新的时候都应该用git打上tag,说明你的产品有新版本发布了。

develop:开发分支,一开始从master分支中分离出来,用于开发者存放基本稳定代码。之前说过,每个开发者的仓库相当于源仓库的一个镜像,每个开发者自己的仓库上也有master和develop。开发者把功能做好以后,是存放到自己的develop中,当测试完以后,可以向管理者发起一个pull request,请求把自己仓库的develop分支合并到源仓库的develop中。

所有开发者开发好的功能会在源仓库的develop分支中进行汇总,当develop中的代码经过不断的测试,已经逐渐趋于稳定了,接近产品目标了。这时候,我们就可以把develop分支合并到master分支中,发布一个新版本。

暂时性分支

暂时性分支和永久性分支不同,暂时性分支在开发过程中是一定会被删除的。所有暂时性分支,一般源于develop,最终也一定会回归合并到develop。

feature:功能性分支,是用于开发项目的功能的分支,是开发者主要战斗阵地。开发者在本地仓库从develop分支分出功能分支,在该分支上进行功能的开发,开发完成以后再合并到develop分支上,这时候功能性分支已经完成任务,可以删除。

release:预发布分支,当产品即将发布的时候,要进行最后的调整和测试,这时候就可以分出一个预发布分支,进行最后的bug fix。测试完全以后,发布新版本,就可以把预发布分支删除。

hotfix:修复bug分支,当产品已经发布了,突然出现了重大的bug。这时候就要新建一个hotfix分支,继续紧急的bug修复工作,当bug修复完以后,把该分支合并到master和develop以后,就可以把该分支删除。

分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以

所以,团队合作的分支看起来就像这样:

Git 多人开发_第1张图片

开始项目

一般老板会让你拉取一下项目,然后创建自己的分支。拉取项目 分三步:

1.打开终端,cd 目录(你要下载到哪里)

2.git clone 项目地址

3.成功(QAQ)

创建分支有两种方法:

1.直接在github上操作

2.在终端操作

你可能还会遇到的问题就是你需要拉取非主分支的分支,怎么办?我这里在网上看了好多文章 我相信这个可以帮助你

clone 非主分支得分支

小结

Git分支十分强大,在团队开发中应该充分应用。

这篇文章有很多东西讲的还不适合详细,我也会持续更新,希望对大家有所帮助

参考博客:廖雪峰的微博、团队协作开发——学会git玩转github、Git 多人合作、分支管理

你可能感兴趣的:(Git 多人开发)