【Gitee学习之路】Git概述&&安装教程&&基本操作指令

作者:@阿亮joy.
专栏:《Gitee学习之路》
座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根
在这里插入图片描述

目录

    • Git概述
      • 何为版本控制
      • 为什么需要版本控制
      • 版本控制工具
      • Git简史
      • Git 工作机制
      • Git 和代码托管中心
    • Git下载安装教程
    • Git 常用命令
      • 设置用户签名
      • 初始化本地库
      • 查看本地库状态
      • 添加暂存区
      • 提交本地库
      • 修改文件
      • 历史版本
    • Git 分支操作
      • 什么是分支
      • 分支的好处
      • 分支的操作
    • Git 团队协作
      • 团队内合作
      • 跨团队合作
    • 总结


Git概述

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

何为版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

举个通俗易懂的例子,就好比写毕业论文的时候,不可能写一遍就能得到导师的肯定,要多次修改。为了保留一开始的毕业论文,我们通常会拷贝原来的毕业论文,生成一个副本,对毕业论文的副本进行修改。最后,我们也可以通过对比原本和副本之间的优劣。下图就是简单的版本控制。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第1张图片

为什么需要版本控制

因为有了版本控制控制,就能够让个人开发过渡到团队协作。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第2张图片

版本控制工具

➢ 集中式版本控制工具
CVS、SVN(Subversion)、VSS……

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

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

事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第3张图片
➢ 分布式版本控制工具
Git、Mercurial、Bazaar、Darcs……

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

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

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第4张图片

Git简史

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第5张图片

Git 工作机制

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第6张图片
工作区:平时存放代码的地方。删除工作区的代码,就是真正地删除代码,不会留下任何的记录。

暂存区:为了让 Git 追踪到你写的代码,,需要将你写的代码添加到暂存区。暂存区临时存储代码,可以删除。但与工作区的删除代码不同,暂存区的删除并不会真正删除你的代码。

本地库:就是安全存放数据的位置,这里有你提交到所有版本的数据,其中 Head 指向最新放入仓库的版本。

远程库:托管代码的服务器,例如:GitHub(外网) 和Gitee(国内网站)。

Git 和代码托管中心

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

➢ 局域网

  • GitLab

➢ 互联网

  • GitHub(外网)
  • Gitee 码云(国内网站)

Git下载安装教程

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

进入官网之后,点击 Download for Windows,进行下载。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第7张图片
根据自己的系统,选择 32 位或者 64为来进行下载。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第8张图片
查看 GNU 协议,可以直接点击下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第9张图片
选择 Git 安装位置,要求是非中文并且没有空格的目录,然后下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第10张图片
Git 选项配置,推荐默认设置,然后下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第11张图片
Git 安装目录名,不用修改,直接点击下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第12张图片
Git 的默认编辑器,建议使用默认的 Vim 编辑器,然后点击下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第13张图片
默认分支名设置,选择让 Git 决定,分支名默认为 master,下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第14张图片
修改 Git 的环境变量,选第一个,不修改环境变量,只在 Git Bash 里使用 Git。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第15张图片
选择后台客户端连接协议,选默认值 OpenSSL,然后下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第16张图片
配置 Git 文件的行末换行符,Windows 使用 CRLF,Linux 使用 LF,选择第一个自动转换,然后继续下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第17张图片
选择 Git 终端类型,选择默认的 Git Bash 终端,然后继续下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第18张图片
选择 Git pull 合并的模式,选择默认,然后下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第19张图片
选择 Git 的凭据管理器,选择默认的跨平台的凭据管理器,然后下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第20张图片
其他配置,选择默认设置,然后下一步。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第21张图片
实验室功能,技术还不成熟,有已知的 bug,不要勾选,然后点击右下角的 Install
按钮,开始安装 Git。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第22张图片
点击 Finsh 按钮,Git 安装成功!

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第23张图片
右键任意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端
【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第24张图片
在 Git Bash 终端里输入 git --version 查看 git 版本,如图所示,说明 Git 安装成功。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第25张图片

Git 常用命令

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第26张图片

设置用户签名

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

全局范围的签名设置:

Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第27张图片
说明:

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

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

初始化本地库

git init

首先,创建一个新的文件夹,并进入到文件夹中去。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第28张图片
然后,右击空白位置再左击 Git Bash Here

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第29张图片

最后,在弹出的窗口中输入 git init,就完成了初始化本地仓库。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第30张图片

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第31张图片

查看本地库状态

1.首次查看(工作区中没有任何文件)

git status

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第32张图片
2.创建文件(test.txt)

touch 文件名

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第33张图片
创建文件成功,就能够在工作区中看到文件了。

3.编辑文件

nano 文件名

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第34张图片
博主在 test.txt 文件里写了 6句 hello world,然后在摁 Ctrl + X 退出编辑再摁一下 Y 保存编辑。

4.查看目标文件内容

cat 文件名

输入 cat test.txt 之后,我们就可以看到 test.txt文件里的内容了。然后我们再输入一次 git status 查看本地库的状态。这时候,我们就可以发现和第一次输入 git status 的情况不一样,说明我们的本地库中已经有文件了。

添加暂存区

1.将工作区的文件添加到暂存区

git add 文件名

在这里插入图片描述
2.查看状态(检测到暂存区中有新文件)

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第35张图片
3.将文件移除暂存区

git rm --cached 文件名

这时候,test.txt 文件就成功地添加到了暂存区中。但是如果你想把 test.txt 文件移除暂存区的话,就可以使用git rm --cached 文件名 指令。注意:这个指令只是将文件移除暂存区,并没有将工作区的文件给删掉。
【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第36张图片
输入 ll 指令(查看本文件路径下有什么文件)后,我们可以看到 test.txt 文件还在,这也就说明了工作区的文件并没有被删除。

提交本地库

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

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

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第37张图片
2.查看状态(没有文件需要提交)

看到这样的信息之后,我们的文件就成功地提交到了本地库。然后我们再一次输入 git status 指令看一下状态。
【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第38张图片
3.查看版本信息(简略的)

git reflog

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第39张图片
4.查看版本信息(详细的)

git log

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第40张图片

修改文件

1.打开文件并修改

nano 文件名

使用 nano 文件名 指令就可以打开文件进行编辑了,然后我在第一行的后面加上 6个 1,再然后摁 Ctrl + X退出编辑,再摁 Y 保存编辑。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第41张图片
2.查看状态( 检测到工作区有文件被修改)

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第42张图片
此时,可以看到提示信息:工作区中的文件被修改了。

3.将修改的文件再次添加暂存区

在这里插入图片描述
4.查看状态( 工作区的修改添加到了暂存区)

在这里插入图片描述
5.将修改后的文件提交到本地库

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第43张图片
6.查看状态和版本信息

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第44张图片

历史版本

1.查看历史版本信息

git reflog 查看简略的版本信息
git log 查看详细的版本信息

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第45张图片

2.版本穿梭

git reset --hard 版本号

通过 git reflog 或者 git log 指令查到历史版本的版本号,然后再进行版本穿梭。
【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第46张图片

这样,我们就通过版本号,成功地穿梭回第一个版本的文件了。Git 切换版本,底层其实是移动的 HEAD 指针,具体原理如下图所示。

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第47张图片

Git 分支操作

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第48张图片

什么是分支

在版本控制过程中,同时推进多个任务。对于每个任务,我们可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第49张图片

分支的好处

可以同时并行推进多个功能开发,提高开发效率。各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

分支的操作

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第50张图片

1.查看分支

git branch -v

在这里插入图片描述
目前只有 master 一个分支。

2.创建分支

git branch 分支名

`【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第51张图片

可以看到,现在我们就成功地创建了 hot-fix 分支了。

3.切换分支

git checkout 分支名

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第52张图片
4.修改分支

目前,我们已经切换到了 hot-fix 分支上了,现在我们要打开 test.txt 文件(nano test.txt)进行修改。
【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第53张图片
修改过后,再输入 git status 查看状态,可以发现 test.txt 文件被修改了。那么我们现在就将 test.txt 文件重新添加到暂存区和提交到本地库。
【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第54张图片

5.合并分支

git merge 分支名 将分支合并到当前分支上

在在 master 分支上合并 hot-fix 分支

在这里插入图片描述

6.产生冲突

冲突产生的表现:后面状态为 MERGING

Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master|MERGING)

冲突产生的原因:
合并分支时,两个分支在 同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

7.解决冲突
1)编辑有冲突的文件,删除特殊符号,决定要使用的内容

特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

2)添加到暂存区

在这里插入图片描述

3)执行提交(注意:此时使用 git commit 命令时 不能带文件名)

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第55张图片

Git 团队协作

团队内合作

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第56张图片

跨团队合作

【Gitee学习之路】Git概述&&安装教程&&基本操作指令_第57张图片

总结

本篇博客主要讲解了何为Git、何为版本控制、Git的下载安装教程以及Git的基本操作指令。如果大家觉得文章写得不错,大家给个三连支持一下哦!谢谢大家啦!❣️

你可能感兴趣的:(Gitee学习之路,git,学习,github,分布式)