本文主要介绍Git的相关概念
关于并发与并行
- 并发:并发的实质是CPU在各个程序之间多线路交替执行。在一个CPU中,其运行时间会被划分成许多时间段,再将时间段分配给各个线程执行。
- 并行:并行指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。
并行开发
并行开发流程一般为
- 将任务切分成多个子任务
- 各个子任务同时进行
- 将完成的子任务进行合并,检查,测试
- 完成任务
下文的工作流程Git Flow就是采用并行开发
版本控制系统
说到分布式版本控制系统,就一定会想到集中式版本控制系统,下面来介绍两种控制系统。
集中式版本控制系统是有一台中央服务器,版本库都存放在此处,每个工作者都需要用自己的电脑从中央服务器获取最新的版本,进行修订、编写,最后传回中央服务器。(集中式需要通过联网来连接中央服务器,且当中央服务器出问题,工作就无法进行)
而分布式版本控制系统是其根本没有“中央服务器”,每个人的电脑上都复制了一个完整的版本库。工作者只需要在自己的电脑上工作,最后再把自己的版本库发送给他人,提高了安全性。
Git分布式版本控制系统
Git分布式版本控制系统是Linus为帮助管理Linux内核开发而开发的一个开放源码的版本控制软件,可以多个用户一起做开发,在这其中有几种角色和他们所创建存放版本的仓库
角色 | 仓库 |
---|---|
开发者 | 项目公共仓库 blessed repository |
维护者 | 克隆仓库 integration manager |
贡献者 | 公共仓库 develop public ,个人仓库develop private |
其工作流程为
- 开发者建立自己的公共仓库
blessed repository
- 贡献者
clone
此仓库到develop private
,进行修订或编写代码,再推送到develop public
- 贡献者向维护者发送邮件,请求拉去自己的新修订
- 维护者在
integration manager
中将贡献者的develop public
设为远程仓库,合并起来做测试 - 若没有问题,则维护者将合并的新仓库推送到
blessed repository
向Github仓库添加代码
-
在Github上创建新仓库
-
找到并复制仓库的地址
-
在本地新建文件夹,打开,右键鼠标,点击git bash here
-
在命令行输入
git clone "复制的地址“
,会生成一个本地仓库 -
将你的代码复制到这个仓库文件夹,并在命令行输入
git add "代码的名字”
,git cooimit -m "描述你的修改“
(可以用git status
验证你的操作)
-
最后在命令行输入
git push -u origin master
,会弹出网页验证你的Github账号,输入密码 -
添加完成
Git Flow
在使用Git时,不可避免涉及到多人协作。协作必须有一个规范的工作流程,让大家有效地合作。Git flow就是Vincent Driessen提出的一种分支管理策略,通过git flow的分支管理思想,可以使得项目开发中版本库的演进保持简洁,主干清晰。
Git Flow有五大分支:
长期分支
- 主分支
master
- 开发分支
develop
短期分支
- 功能分支
feature branch
- 预发分支
release branch
- 补丁分支
hotfix branch
master
分支: 用于存放准备好的代码,可以随时发布,不可直接在这上面修改develop
分支:汇总开发者完成的代码,最新的合并进来的代码可以是有缺陷的,但已存的代码应该是没有缺陷的(因为会随着master分支更新)feature
分支:要开发和修改长期分支上的产品,从develop分支创建一个新的feature分支,并在feature分支上进行开发。开发完成后,需要将该feature分支合并到develop分支,最后删除该feature分支。release
分支:当develop分支上的项目准备发布时,从develop分支上创建一个新的release分支,新建的release分支只能进行质量测试、bug修复、文档生成等面向发布的任务,不再开发新功能。完成后分别合并到master分支和develop分支,最后删除该release分支。hotfix
分支:当master分支中的产品出现需要立即修复的bug时,从master分支上创建一个新的hotfix分支,并在hotfix分支上进行bug修复。修复完成后,需要将hotfix分支合并到master分支和develop分支,最后删除hotfix分支。
参考的博客
link1