Git教程及使用经验
前言
经过一周的准备,完成了 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 开发。