【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令

目录

一:概述

1.1. 何为版本控制

1.2. 为什么需要版本控制

1.3. 版本控制工具

1.4.  Git 简史

1.5. Git 工作机制

1.6. Git和代码托管中心

二:安装

2.1. Git安装

三:常用命令

3.1 设置用户签名

3.2  初始化本地库

3.3 查看本地库状态

3.4  添加暂存区

3.5 提交到本地库

3.6 查看历史版本

3.7 模拟版本迭代

3.8 版本穿梭


一:概述

        Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具

1.1. 何为版本控制

(1)版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。

(2)版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本, 方便版本切换。

(3)例如:当我们修改毕业论文时,肯定不能直接在原来的版本上进行修改,我们不能保证会修改的越来越好,所以就需要对每次的每个修改版本进行备份,这就是版本控制!

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第1张图片

1.2. 为什么需要版本控制

(1)目的是:从个人开发过渡到团队协作。

(2)例如:对于同一个项目,小红和小明都拉取到自己本机上修改;小红认为第一个版本应该加入222,变成第二个版本;小蓝认为第一个版本应该应该加入444,变成第三个版本;如果此时不使用版本控制工具,小蓝修改的版本就会覆盖原来小红修改的版本!所以就需要专门的版本控制工具去合并两个人的代码!

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第2张图片

1.3. 版本控制工具

集中式版本控制工具

(1)CVS、SVN(Subversion)、VSS……

(2)集中化的版本控制系统诸如CVS、SVN 等,都有一个单一的集中管理的服务器,保存 所有文件的修订版本(修改好后就提交给中央服务器),而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或 者提交更新。多年以来,这已成为版本控制系统的标准做法。

(3)优点:每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。

(4)缺点:是中央服务器的单点故障,如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第3张图片

分布式版本控制工具

(1)Git、Mercurial、Bazaar、Darcs……

(2)像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码 仓库(远程库)完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用 其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次 对整个文件仓库的完整备份。

(3)分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

①服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的);

②每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全);

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第4张图片

1.4.  Git 简史

Git是Linus花了两周时间用C写了一个分布式版本控制系统,用来管理Linux系统的源码!

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第5张图片

1.5. Git 工作机制

Git大概分为三个区:工作区、暂存区、本地库!

①工作区:是指代码存放的磁盘的目录的位置;

②暂存区:让git追踪到你有这么个代码文件,所以需要把工作区的代码添加到暂存区;

③本地库:把暂存区的代码提交到本地库,此时才会有对应的历史版本;

注:最后在从本地库推送到(push)远程仓库!

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第6张图片

1.6. Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库!

➢ 局域网:GitLab(自己公司搭建的);

➢ 互联网:GitHub(外网)、Gitee 码云(国内网站);

二:安装

官网地址:https://git-scm.com/

2.1. Git安装

双击可执行文件,得到以下安装界面

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第7张图片

选择 Git 安装位置,要求是非中文并且没有空格的目录(目录位置可自定义)

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第8张图片

Git 选项配置,推荐默认设置

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第9张图片Git 安装目录名,不用修改

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第10张图片

Git 的默认编辑器,建议使用默认的 Vim 编辑器

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第11张图片

默认分支名设置,选择让 Git 决定,分支名默认为 master

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第12张图片

修改 Git 的环境变量,选第一个,不修改环境变量,只在 Git Bash 里使用 Git

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第13张图片

选择后台客户端连接协议,选默认值 OpenSSL

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第14张图片

配置 Git 文件的行末换行符,Windows 使用 CRLF,Linux 使用 LF,选择第一个自动转换

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第15张图片

选择 Git 终端类型,选择默认的 Git Bash 终端

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第16张图片

选择 Git pull 合并的模式,选择默认

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第17张图片

选择 Git 的凭据管理器,选择默认的跨平台的凭据管理器

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第18张图片

其他配置,选择默认设置,然后下一步。

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第19张图片

实验室功能,技术还不成熟,有已知的 bug,不要勾选

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第20张图片

 点击 Finsh 按钮,Git 安装成功!

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第21张图片

 右键任意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端。

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第22张图片

在 Git Bash 终端里输入 git --version 查看 git 版本,如图所示,说明 Git 安装成功。

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第23张图片

三:常用命令

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第24张图片

3.1 设置用户签名

(1)基础语法

git config --global user.name 用户名 
git config --global user.email 邮箱 

(2)案例实操

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第25张图片

(3)结果查看

怎么确定我们设置好了?使用cat命令进行查看

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第26张图片

或者直接找到用户名下面的.gitconfig文件 

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第27张图片

(4)说明

签名的作用是区分不同操作者身份;用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

3.2  初始化本地库

(1)基础语法

git init 

(2)案例实操

假设在D:\git-space目录下有一个git文件夹,在当前文件夹下点击右键选择Git Bash Here,此时就会跳转到当前目录下;执行git init命令,进行初始化,拿到权限才能进行管理!

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第28张图片

(3)结果查看 

初始化后,会生成一个.git隐藏目录

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第29张图片也可以使用Linux命令进行查看,ll -a(-a表示显示所有的文件,包括隐藏的)

 【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第30张图片

3.3 查看本地库状态

 (1)基本语法

git status

(2)案例实操

首次查看(工作区没有任何文件,生成三行日志目录)

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第31张图片

新增文件(使用vim编辑器进行添加Hello.java)  

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第32张图片

 再次查看(检测到未追踪的文件)

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第33张图片

3.4  添加暂存区

 (1)基本语法

git add 文件名 

(2)案例实操

相当于从工作区添加到了暂存区

会出现一个警告,这个警告是告诉我们把windows的换行符CRLF自动转换成Linux的LF,不用管这个警告!

 查看状态(检测到暂存区有新文件)

此时要是不想让Hello.java保存历史版本,可以使用git rm --cached Hello.java进行删除!

注:此时只是删除暂存区里面的文件,在工作区上还是存在的!

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第34张图片

3.5 提交到本地库

(1)基础语法

git commit -m "日志信息" 文件名 

(2)案例实操

将暂存区的文件提交到本地库

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第35张图片

再次查看状态,日志信息又变了

 

3.6 查看历史版本

(1)基本语法

git reflog 查看版本信息 
git log 查看版本详细信息 

(2)案例实操

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第36张图片

3.7 模拟版本迭代

修改文件Hello.java

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第37张图片

再次查看状态 (检测到工作区有文件被修改)

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第38张图片

将修改的文件再次添加暂存区,并查看状态

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第39张图片

再次提交到本地库

明明只是修改了一行,为什么提示一行新增,一行删除?

注:在Git中是按照行来维护文件的,修改一行没有办法表达出来,只能把修改的那一行先删掉,然后把修改后的那一行新增进来!

3.8 版本穿梭

(1)基本语法

git reset --hard 版本号 

(2) 案例实操

再次查看历史版本信息,此时已经有两个版本

注:此时指向的是我们刚刚提交的第二个版本!

 此时查看文件的信息

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第40张图片

切换到第一个版本

 查看版本信息,指针已经指向第一个版本了

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第41张图片

 再次查看文件的信息

 【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令_第42张图片

补充:也可以通过文件直接看

首先找到.git下面的HEAD文件,显示的内容如下:

ref: refs/heads/master // 指针指向了master,说明当前是在master分支上

在查看在master分支上的那个版本?在.git/refs/heads/master

708329dbaf888265cd62e21dd99dad5d3fd16b8c // 第一个版本号
// 指针指向了master分支,master分支又指向了第一个版本

总结:Git切换版本,底层其实是移动的head指针,head指针指向master分支,master分支又指向了版本号,通过调节指针的指向来切换不同的版本!

你可能感兴趣的:(Git,git,github)