Git介绍
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,所以,工作的时候就不需要联网了,因为版本库都是在自己的电脑 上。现在每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
主要有如下特点:
1. 版本控制
2. 分布式
3. 工作过程是将服务器上的代码下载到本地,本地开发完成后,在提交到服务器端
git相比于svn功能更加的强大,命令也很多。本篇博客将详细介绍一些常用命令的使用操作。
Git和SVN的对比
1.git是分布式的,svn是集中式的。(最核心)
2.git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复。(核心)
3.git可离线完成大部分操作,svn则不能。
4.git有着更优雅的分支和合并实现。
5.git有着更强的撤销修改和修改历史版本的能力
6.git速度更快,效率更高。
基于以上区别,git有了很明显的优势,特别在于它具有的本地仓库。
Git几个概念
一. 工作目录
工作目录是对项目的某个版本独立提取出来的内容。这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
二. 暂存区域
是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。有时候也被称作`‘索引’’,不过一般说法还是叫暂存区域。
三. Git 仓库目录
是Git 用来保存项目的元数据和对象数据库的地方。这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
Git工作流程
基本的 Git 工作流程如下:
在工作目录中修改文件 > 暂存文件,将文件的快照放入暂存区域 > 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
如果 Git 目录中保存着的特定版本文件,就属于已提交状态。如果作了修改并已放入暂存区域,就属于已暂存状态。如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
部署
1>下载安装
yum install git -y
2>git 常用选项
git add: 添加文件至暂存区域
git branch: 查看分支和创建分支
git checkout: 进行撤销也可以进行分支切换
git clone: 克隆远程主机仓库
git commit: 把暂存区域的文件提交至仓库中
git init: 初始化目录(工作目录)
git merge: 合并分支
git pull: 拉取远程主机的仓库
git push: 把本地仓库推送到远程主机
git reset: 撤销操作
git status: 查看git目录中文件状态
3>git 基本操作
&1> 创建目录
&2> 初始化目录为工作目录
git init
初始化完成后会生成一个隐藏文件 .git
&3>创建文件并提交到暂存区域
touch test
git add test 或 git add . ( . 代表当前目录所有的文件 )
&4>提交
1#验证一下
2# 提交
&5>查看 已提交的版本
&6>写入内容至test文件并提交
1#
echo ‘123’ >> test
2# 提交至暂存区
git add test
3# > 提交并查看
会发现两个不同的版本
&7>回滚到v1 版本
4>撤销 回滚
&1撤销工作区的文件
1#查看当前文件状态
2#编辑文件并查看文本状态
3# 撤销工作区并查看状态
git checkout -- test
git status
&2撤销暂存区的文件
#1查看状态
#2编辑文件并查看状态
#3提交至暂存区并查看状态
#4回撤到工作区并查看状态
#5撤销工作区的文件并查看状态
&3 回滚到任意版本
#1 提交多个版本并查看所有版本
#2 从 v3 版本 回滚 到 v1版本 并查看
#3 回滚到 v2 版本 并查看
注:
1.log
log命令可以显示所有提交过的版本信息
2.reflog
如果在回退以后又想再次回到之前的版本,git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录
5>分支 (查看、创建、切换)
&1 查看分支
注 : 至少有一个版本被提交,才会有分支概念
例如:
#1
#2
&2 创建分支
&切换分支
6>分支使用
1& 切换分支至lia
2&编辑test 文件并进行提交
3&切换至主分支
4&查看文本test
5&分支合并
git merge 分支名
6&查看