Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,此文主要介绍git的使用,了解git的三个区,通过git连接github,以及常用git的常用命令.
git的使用
1.版本控制
1.1 备份文件
- 类似于网盘备份
- 我们的代码也需要备份。修改完了以后提交给版本库进行保管,哪一天代码没了也可以找回来。
1.2 记录历史
- 比如我们打游戏就要存档,万一挂了还可以从上个存档的地方重玩。
- 和网盘不同,网盘保留的是最新的状态,历史的记录都没有了,修改的记录也都找不回来了
- 网盘无法知道文件里的某行代码是何人在哪个时间添加进去的
1.3 回到过去
- 如果我有一天不小心删除了某个文件,我们可以通过历史备份找回来
1.4 多端共享
- Git仓库可以通过PC端、Android、IOS移动端等各个终端访问
- 可以随时随地修改代码,公司没干完的工作回家接着干
1.5 团队协作
- 多个人或团队合作编写一个项目
- 合并代码处理冲突
2.什么是git
- 为了告别手动方式管理Linux代码,并且符合开源和免费,Linus花了两周时间自己用 C 写了一个分布式版本控制系统,这就是Git
- Git迅速成为最流行的分布式版本控制系统,尤其是 2008 年 GitHub 网站上线了,它为开源项目 免费提供Git存储 ,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
3.git的安装
3.1 windows下安装
下载地址 http://git-scm.com


 
  
3.2 mac下安装
下载Homebrewhttp://brew.sh
 
   
- 拷贝对应脚本到终端下安装HomeBrew
- 然后在终端执行 brew install git命令安装*git
安装xcode会默认下载git
4. 配置git用户和邮箱
| 
 | 
 | 
不配置用户名和邮箱的话无法提交,因为git不知道你是谁
查看配置
| 
 | 
 | 
5.初始化git
- 先创建一个空目录 ,然后进入此目录
- 点击右键选择Git-Bash打开命令行
- 输入git init命令把这个目录变成Git可以管理的仓库
| 
 | 
 | 
通过ls -al命令查看所有文件
6.git中的三个区
- 工作区 - 通过git add 添加到暂存区 1$ git add '文件名'
- 暂存区 
 特点:- 过渡的作用,避免- 误操作,- 保护工作区和历史区,分支处理;- 通过git commit 添加到历史区 1$ git commit -m"注释内容"
- 历史区 - 查看历史状态 1$ git log
修改时通过git status查看当前状态
7.git diff
不同区的代码比较
7.1 工作区和暂存区
| 
 | 
 | 
7.2 暂存区和历史区
| 
 | 
 | 
7.3 工作区和版本库
| 
 | 
 | 
8. 撤销
8.1 撤销回git add的内容
| 
 | 
 | 
8.2 撤回文件
- 先从缓存区撤销,缓存区无内容,从历史区域撤销1$ git checkout "文件名"
有的时候我们希望提交时合并到上一次的提交 git commit –amend
9.删除
9.1 删除暂存区和工作区
删除暂存区中的内容,并且保证工作区中的内容已经不存在1$ git rm "文件名"
若本地文件存在则不能删除,需要通过-f参数删除
9.2 仅删除缓存区
| 
 | 
 | 
10. 恢复
10.1 恢复某个版本文件
| 
 | 
 | 
10.2 通过版本id恢复
| 
 | 
 | 
10.3 恢复未来
查看当时回滚时的版本1$ git reflog
10.4 快速版本回退
| 
 | 
 | 
11. 同步远程仓库
11.1 gitHub
- 注册账号
- 新建项目
11.2 添加远程仓库
| 
 | 
 | 
11.3 添加忽略文件
| 
 | 
 | 
11.4 推送代码
| 
 | 
 | 
11.5 查看
| 
 | 
 | 
12.代码的合并
12.1 git fetch
| 
 | 
 | 
拉取过来手动合并12$ git diff master origin/master$ git merge origin/master
12.2 git pull
拉取并合并1git pull
13. 作业提交流程
13.1 第一次交作业流程(组长)
- fork珠峰培训讲师的作业仓库
- 把自己的仓库下载到本地
- 把自己的作业 上传到自己的github仓库
- 发pull request给讲师
- 添加组员账号
13.2 第二次交作业流程(组员)
- 克隆组长项目
- 先拉取组长仓库最新代码
- 将自己的作业(放入对应的文件夹)
- git add/git commit
- 再push前拉取组长仓库最新代码
- push到组长仓库
13.3 第二次交作业流程(组长)
- 在本地增加讲师仓库
- 拉取自己的最新代码
- 拉取老师的最新的代码,如果冲突需要解决冲突
- 把自己的作业 拷贝进去(如果组长没有要提交的东西可省略)
- 把自己的作业上传到自己的github仓库(如果组长没有要提交的东西可省略)
- 发pull request给讲师