前言

经过一周的准备,完成了 Git 的一些使用经验及教程。

主要是从命令行的角度来讲解。

Git 是什么

git 在维基百科上的解释是这样的

git是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools(一个类似Norton Commander界面的文件管理器)有所不同。

在我看来 Git 是一个 版本控制工具 和 团队协作 软件。

Git 版本控制

简单的使用看这个博客 Git教程操作

这个博客会在这个基础上更加详细的讲解命令行的使用,以及一些操作原理。

git status

当我们通过 git add 命令添加文件到 git 中的时候,可以通过 git status 来了解当前代码库的情况。

通过 git status这个命令我们可以知道当前代码库的状态

git add -?

为什么每次都要使用 git add 把修改文件添加,之后在提交。

这就是 git 的一个原理图。

git 工作时候分为工作区和版本库。工作区就是我们自己本地编辑的区域。而代码库又有一个 暂存区/缓存区。我们每次提交版本(commit) 都是在暂存区向代码库提交。所以我们每次都要通过 add 命令进行对修改的添加。

在给 git 添加文件的时候,我们使用的是 git add <filename>,但是当我们要添加大量的文件的时候,采用 git add 不仅浪费时间,而且还容易出错。此时我们使用 git add -A 会把所更改(包括文件的添加,删除,修改)的文件添加到代码库中。

git add -i 会进入一个命令的子系统,提供我们选择。

git diff

git diff 是一个比较代码的命令,如果不加参数表示本次和上一次的比较。我们可以添加要比较的两个版本的哈希值。

git diff 01df58 6e1baa

Git 协作开发

之前的 Git 是用来用做简单的 版本控制,记录了每一个版本。下面我们进行团队协作开发。

Git 分支

当一个人开发功能 A 而另一个人开发功能 B ,之后代码进行整合的时候,使代码既有功能 A 也有功能 B 。在 Git 中,Git 给了我们分支的概念。

分支可以使用我们快速的开发协作,并且快速的合并。

分支的使用

通过命令 git branch 来查看分支情况,当前分支会前面带 * 标识。git branch <branch name> 来创建分支。 分支创建会拷贝当前的内容到新的分支。通过 git checkout <branch name> 来切换到我们需要切换的分支。

我们也可以通过 git checkout -b <filename> 来创建分支并且切换到该分支。

分支的合并

当我们创建出新的分支的时候,就可以对这个分支进行版本的迭代。当我们做完版本迭代,版本更新的时候,就会向我们的 master 分支上就行合并。

如果我们要向 master 分支上合并我们新创建的分支叫 dev ,那么我们先切换分支到 master,在通过 git merge dev 进行合并两个分支。期间会有合并冲突,通过修改来进行保留。

Git flow

如上图,git flow 是 git 给我们的一个协作的开发流程,master 分支一般是用于上线产品的发布,develop 分支使用开发, 在他的支线上我们一般会创建功能分支。我们在功能分支上开发完成后合并到 develop 分支上。这样就完成了我们的 git flow 开发。

PPT下载