一、简介
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,以及备份供后续恢复以前的版本。其主要涉及到四个关键点:
- 工作区(workspace): 本地电脑存放项目文件的路径
- 暂存区(staging area): 在使用git管理项目文件的时候,其本地的项目文件会多出一个
.git
的文件夹,该文件夹被称之为版本库。该文件夹中包含了两个部分,一个是暂存区(stage或者index),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里 - 本地仓库(local repository):
.git
文件夹里还包括git自动创建的master分支,并且将HEAD指针指向master分支。使用commit命令可以将暂存区中的文件添加到本地仓库中 - 远程仓库(remote repository): 不是在本地仓库中,项目代码在远程git服务器上,比如项目放在github上,就是一个远程仓库,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中即可
二、安装
至于Git的安装教程详细可见Mac安装Git及Windows安装Git文章
一般Git的配置会有三级,首先会在当前项目的路径下找,未找到则在当前用户配置下查找,最后在Git的安装目录下进查找,如下:
- .git/config
- 当前用户目录/.gitconfig
- git安装目录/etc/gitconfig
三、Git Flow
使用Git之前我们需要来了解一下Git Flow,其可以用来规范团队git操作,让整个项目有一个清晰的流程和规范。
-
Master分支
所有在Master分支上的commit都应该打上Tag,一般情况下Master不存在commit,Devlop分支基于Master分支创建,这个分支只能从其他分支合并,不能在这个分支直接修改 -
Develop分支
这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature、Release分支 -
Feature分支
这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release,合并完分支后一般会删点这个Feature分支 -
Release分支
Release分支基于Develop分支创建,创建完Release分支之后,我们可以在这个Release分支上测试,修改Bug等。测试通过后Release将合并到Master和Develop分支,同时在Master分支上打个Tag记住Release版本号,然后可以删除Release分支了。 -
Hotfix分支
当我们在Production环境中发现新的Bug时候,我们需要创建一个Hotfix分支, 完成Bug Fix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release分支中。
四、Git操作
4.1、创建版本库(git init, git clone <url>)
首先我们在本地新建一个项目,然后我们就可以执行git init
命令,来让git开始管理这个文件夹,在同级目录下会出现一个隐藏的.git
文件。