* 是什么
* 怎么用
* 用在哪些场合
* 有哪些注意点
## 什么是 git
* 是一款开源的分布式版本控制工具。
* 所有的分布式版本控制工具中,git 是最快、最简单、最流行的工具
## git 的起源
* 作者是 Linux 之父:Linus Benedict Torvalds
* 为了辅助 Linux 内核的开发(管理源代码)
## git 现状
国外已经非常普及,国内并未普及
## 其它版本控制工具
* CVS 最早的开源、免费的集中式版本控制恐惧
* SVN使用最多的集中式版本控制工具
* ClearCase
* VSS 微软开发的版本控制工具
## 集中版本控制
[image:41059088-B185-4490-81E7-B2DB59015D94-11366-000073DD2FF0685E/集中版本控制工具.png]
所有的代码在一个地方进行管理
## 分布式版本控制
[image:353310C9-26D8-4832-B305-B358C1787A16-11366-000060E253135606/屏幕快照 2017-02-10 18.51.50.png]
服务端和客户端都有代码仓库。
## git 和 svn 的简单对比
* 速度 :
很多情况下,git 的 速度远比 SVN 快
* 结构:
svn 集中式管理,git 分布式管理
* 其它:
svn 使用分支比较笨拙,git 可以轻松拥有无限个分支
svn 使用时必须联网,git 支持本地版本控制工作
旧版本的 svn 会在每一个文件夹下 放置一个.svn,git 只会在根目录 拥有一个.git
## git 的工作流程
[image:92CFFCFF-CC34-45D1-AA56-94B727C0629F-11366-000069B4F7E3F383/屏幕快照 2017-02-10 21.33.22.png]
* 先 commit 本地缓存区,在执行 pull,push 操作。
* 分布式和集中式的最大区别在于:在分布式下开发者可以本地提交,每个开发者机器上都有一个服务器的数据库
## 使用 git
*可以通过命令行指令或者图形界面客户端使用 git*
在mac 上,比较好用的 git 图形界面客户端有
* SourceTree[SourceTree](http://www.sourcetreeapp.com/download/)
* Github [Github 客户端](https://mac.github.com) 不过它是专门为 GitHub 网站设计的
* Xcode 集成的指令比较简单,不能进行较复杂的操作
### 使用指令:
1)新建一个本地仓库
$ git init
2)配置仓库
*一次性配置* (会配置到管理文件的.git 文件夹下)
我是谁
$ git config user.name myname
怎么联系我
$ git config user.email myemail@email.com
*全局配置* (一劳永逸,放到个人用目录下)
$ git config —global user.name myname
$ git config —global user.email myemail@email.com
### 如何学习 git 指令
> git通过使用指南的方式告诉我们某一个指令如何使用
> 这个指令其实是一个不可编辑的 vim
> q 退出指南
> 按空格下一页
> control + B 上一页
> /需要搜索的内容
$ git —help
e.g.: $ git —help clone
### git 常规指令
$ git status 查看文件状态’
$ git add 添加文件到暂存区
$ git commit 文件名称 -m 日志信息 *添加文件到”本地仓库”*
如没有-m 说明,会自动进入 vim 界面,要求我们输入修改信息
注意:git 中每次新建或修改之后都要重新 add,svn 只需要 add 一次
文件状态颜色
> 1、未添加之前的颜色 ——— 红色 代表在”工作区”
> 2、添加到暂存区之后的颜色 ——— 绿色 代表在”暂存区”
## 工作原理
核心概念:
* 工作区(Working Directory):仓库文件夹里除.git 目录以外的内容
* 版本库(Repository):.git 目录,用于存储记录版本信息.
暂缓区(stage)
分支(master):git 自动创建的第一个分支
HEAD指针:用于指向当前分支
git add 和 git commit 的原理:
* git add:把文件修改添加到暂存区
* git commit : 把暂存区的所有内容提交到当前分支
[image:0B5090F4-4EF3-4739-97DE-2899BBC7231A-11366-000072C56B1EFB8D/屏幕快照 2017-02-11 09.19.35.png]
[image:190BE1D4-A8C0-4BF9-86F4-80455384D65C-11366-000072D514C2E003/屏幕快照 2017-02-11 09.20.20.png]
[image:4C2A9F6D-A258-4CB6-B656-9287F7B88E18-11366-000072DCDAC5CF3E/屏幕快照 2017-02-11 09.21.19.png]
网友评论