一、Git的概念?
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。
1.什么是版本控制?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 。
2.为什么要使用版本控制?
软件开发中采用版本控制系统是个明智的选择。
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。
就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。
但额外增加的工作量却微乎其微。你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
3.版本控制系统的分类:
(1)集中化的版本控制系统
集中化的版本控制系统诸如CVS, SVN 以及Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客
户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法,这种做法带来了许多好处,现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统;要远比在各个客户端上维护本地数据库来得轻松容易。
事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内, 谁都无法提交更新,也就无法协同工作。
(2)分布式的版本控制系统
由于上面集中化版本控制系统的那些缺点,于是分布式版本控制系统面世了。
在这类系统中,像Git, BitKeeper 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
二、Git的结构
三、代码托管中心
1.代码托管中心是干嘛的?
我们已经有了本地库,本地库可以帮我们进行版本控制,为什么还需要代码托管中心呢?
它的任务是帮我们维护远程库,
下面说一下本地库和远程库的交互方式,也分为两种:
(1)团队内部协作
(2)跨团队协作
2.托管中心分类
局域网环境下: 可以搭建 GitLab服务器作为代码托管中心,GitLab可以自己去搭建
外网环境下:可以由GitHub或者Gitee作为代码托管中心,GitHub或者Gitee是现成的托管中心,不用自己去搭建
四、Git的使用
1.初始化本地仓库
打开git-bash
(1)查看git安装版本
(2)清屏
(3)设置用户和邮箱
用户名
邮箱
(4)初始化本地仓库
.git的目录是隐藏的可以调出来查看
2.Git的常用命令
先创建一个文件
(1)将文件添加到暂存区![](https://img-blog.csdnimg.cn/direct/e5faa47dd2234df0962e289d70c11943.png)
(2)暂存区添加到本地仓库![](https://img-blog.csdnimg.cn/direct/264c2cc8ea29471ba110403b5b31a80d.png)
注意事项:
1.不放在本地仓库中的文件,git是不进行管理
2.即使放在本地仓库的文件,git也不管理,必须通过add,commit命令操作才可以将内容提交到本地库。
(3)工作区和暂存区的状态
创建一个文档并查看状态
添加到工暂存区再进行状态查看
提交到本地库
现在修改文档的内容
再次查看状态
添加到暂存区并查看状态
提交到本地库查看状态
git log 可以让我们查看提交的,显示从最近到最远的日志
log日志展示方式
git log 显示
git log --pretty=oneline显示
git log --oneline显示
git reflog
多了信息:HEAD@{数字}
这个数字的含义:指针回到当前这个历史版本需要走多少步
reset命令:前进或者后退历史版本
hard参数:
git reset --hard [索引]
本地库的指针移动的同时,重置暂存区,重置工作区
mixed参数:
soft参数:
本地库的指针移动的时候,暂存区,工作区都不动
删除re 文件名
暂存区执行删除
查看日志
找回暂存区删除
删除工作区数据:
同步到缓存区:
后悔了,恢复暂存区中数据: