- Git介绍
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
什么是“版本控制”?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,所以,工作的时候就不需要联网了,因为版本库都是在自己的电脑 上。现在每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
主要有如下特点:
1. 版本控制
2. 分布式
3. 工作过程是将服务器上的代码下载到本地,本地开发完成后,在提交到服务器端
- Git和SVN的对比
1.git是分布式的,svn是集中式的。(最核心)
2.git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复。(核心)
3.git可离线完成大部分操作,svn则不能。
4.git有着更优雅的分支和合并实现。
5.git有着更强的撤销修改和修改历史版本的能力
6.git速度更快,效率更高。
基于以上区别,git有了很明显的优势,特别在于它具有的本地仓库。
- 三种状态:
Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
- Git中的概念
1.工作目录
工作目录是对项目的某个版本独立提取出来的内容,这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
2.暂存区域
是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。有时候也被称作`‘索引’’,不过一般说法还是叫暂存区域。
3.Git 仓库目录
是Git 用来保存项目的元数据和对象数据库的地方。这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据
- Git工作流程
在工作目录中修改文件 > 暂存文件,将文件的快照放入暂存区域 > 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
如果 Git 目录中保存着的特定版本文件,就属于已提交状态。如果作了修改并已放入暂存区域,就属于已暂存状态。如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
- 获取 Git 仓库
有两种取得 Git 项目仓库的方法。 第一种是在现有项目或目录下导入所有文件到 Git 中; 第二种是从一个服务器克隆一个现有的 Git 仓库。
- 简易安装操作
第一步:安装httpd git(这里用apache演示)
yum -y install git httpd
第二步:初始化工作目录
git init
第三步:创建文件并提交
echo 111 >> index.html
git add . #提交文件至暂存区域
git commit -m "v1" #提交文件至仓库
执行:
git config --global user.name "Your Name"
git config --global user.email you@example.com
echo 222 > index.html #再次修改文件
git add . #进行提交
git commit -m v2 #v2版本
cat index.html #查看文件内容
git log #获取提交信息
git reset --hard 3d0f76d1205fe #执行回滚至v1 后需跟comit ID
git relog #获取所有的历史提交信息
git reset --hard 59ed7a8 #回滚至版本v2
- git不同阶段回滚
1.工作目录回滚
echo 33 > index.html #修改文件
git status #查看文件状态
git checkout -- index.html #撤销工作目录文件
cat index.html
2.暂存区域
echo 33 >index.html
git add .
git status
git reset HEAD index.html
git checkout -- index.html
3.仓库
git log
git relog
git reset --hard 59ed7a8ca4a
- git分支:
1.查看分支
2.创建分支
3.切换分支
4.合并分支
1)查看分支
git branch
2)创建分支
git branch tian
3)切换分支
git checkout tian
echo 33 > index.html
git log
4)合并分支
git log
git merge tian #把分支合并到当前分支