【一篇领进Git】Git的安装和使用

🌱本专栏将从基础开始,循序渐进,讲解git的基本使用,希望大家都能够从中有所收获,也请大家多多支持。
📫专栏地址: 🍉git的使用
📫git相关安装包:链接地址
💬如果文章知识点有错误的地方,请指正!大家一起学习,一起进步。💬
🔥 如果感觉博主的文章还不错的话,还请❤️关注、👍点赞、⭐️收藏三连支持👍一下博主哦

1. Git概述

​ Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。

​ Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

1.1 何为版本控制

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

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

1.2 为什么需要版本控制

​ 个人开发过渡到团队协作。

img-nd4LRDcO-1639821846213

1.3 版本控制工具

1.3.1 集中式版本控制工具

img-Dx7H7wMi-1639821846214

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

​ 这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什 么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

1.3.2 分布式版本控制工具

img-lJmktp0H-1639821846214

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

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

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

1.4 Git工作机制

img-duGXxPUQ-1639821846215

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

  • 局域网
    • GitLab
  • 互联网
    • GitHub
    • Gitee

2. Git安装

下载地址:https://git-scm.com/

img-xKgWGhaB-1639821846215

img-i5Lpu1HB-1639821846215

Git 选项配置,推荐默认设置,然后下一步。

img-cEgQfhu7-1639821846215

Git 安装目录名,不用修改,直接点击下一步。

img-QNGY1cBV-1639821846216

​ Git 的默认编辑器,建议使用默认的 Vim 编辑器,然后点击下一步。

img-gJ4ZyXco-1639821846217

​ 默认分支名设置,选择让 Git 决定,分支名默认为 master,下一步。

img-fTisbbw9-1639821846217

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

img-VzDheXvp-1639821846217

​ 选择后台客户端连接协议,选默认值 OpenSSL,然后下一步。

img-9jkwUTo9-1639821846217

配置 Git 文件的行末换行符,Windows 使用 CRLF,Linux 使用 LF,选择第一个自动 转换,然后继续下一步。

img-MeZkrl8k-1639821846218

选择 Git 终端类型,选择默认的 Git Bash 终端,然后继续下一步。

img-kWGD9m6N-1639821846218

​ 选择 Git pull 合并的模式,选择默认,然后下一步。

img-i1RJAjq8-1639821846218

​ 选择 Git 的凭据管理器,选择默认的跨平台的凭据管理器,然后下一步。

img-TWYh0FBx-1639821846219

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

img-a4at7e1A-1639821846219

​ 实验室功能,技术还不成熟,有已知的 bug,不要勾选,然后点击右下角的 Install 按钮,开始安装 Git。

img-olyI6Uun-1639821846219

img-qWjVT7VE-1639821846220

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

img-2CgptEvE-1639821846220

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

image-20211218155041269

3. Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名查看本地库状态
git commit -m “日志信息” 文件名查看本地库状态
git reflog查看本地库状态
git reset --hard 版本号版本穿梭

3.1 设置用户签名

首次安装git一定要设置用户名,否则后续提交可能会出错。

image-20211218160248843

​ 说明:

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

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

3.2 初始化本地库

git init

img-P2H3NEDH-1639821846221

执行完会生成.git的隐藏文件夹

img-C3lGSWMa-1639821846221]

3.3 状态查看

git status

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

img-yiQp9RFq-1639821846222]

新增文件hello.txt,再查询

img-1BapXpO4-1639821846222

3.4 添加到暂存区

git add 文件名

img-l8pDiOUp-1639821846223

查看状态

img-V5YP23yU-1639821846223

3.5 提交本地库

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

git commit -m "日志信息" 文件名
例:git commit -m "测试first commit" hello.txt

img-LeNVvRL3-1639821846224

image-20211218162507720

3.6 修改文件

首先对hello.txt进行修改,然后查看状态。

img-OjU9vHtv-1639821846225]

接下来把文件依次提交至暂存区、本地库,并查看状态。

img-RfmwfLQK-1639821846225]

3.7 查看日志

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

img-8hA6LIA3-1639821846226]

3.8 版本回退

git reset --hard 版本号

img-01swEYUQ-1639822080761

4. Git分支操作

img-CksHDuzj-1639821846227

​ 在版本控制过程中,同时推进多个任务,为每个任务,可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。

img-XIv23ngX-1639821846227

4.1 分支的好处

​ 同时并行推进多个功能开发,提高开发效率。

​ 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。

4.2 分支的操作

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

4.3 查看分支

git branch -v

img-ruW8hisz-1639821846228

4.4 创建分支

git branch hot-fix

img-FqH2pjln-1639822159604

4.5 切换分支并修改提交文件

git checkout hot-fix

img-yKqtL6j6-1639821846229

修改分支并提交文件

img-vwBESegK-1639821846229

4.6 把指定的分支合并到当前分支上

4.6.1 正常合并

git checkout master
git merge hot-fix

img-wASOB3Ok-1639821846229

4.6.2 冲突合并

产生冲突的原因:

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

4.6 把指定的分支合并到当前分支上

4.6.1 正常合并

git checkout master
git merge hot-fix

image-20211218170959045

4.6.2 冲突合并

产生冲突的原因:

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

举例:

  • 在master下修改本地文件
    img-aaB5wAhc-1639827010849
  • 在master下保存并提交:
    img-sWZymGlQ-1639827010850
  • 切换到hot-fix对第一行也进行修改
    在这里插入图片描述
  • 在hot-fix下保存并提交,然后在master下进行合并
    img-H1E0SWkp-1639827010851

打开hello.txt出现

img-ZNWUkmyL-1639827010851

删掉调整后才能提交(相当于认为处理冲突)

image-20211218191842590

img-ABBBkV88-1639827104344

image-20211218192501795

​ 需要注意的是合并改变的只是当前的分支,在hot-fix这个分支里面文件还是原来的。

​ master、hot-fix 其实都是指向具体版本记录的指针,当前所在的分支,其实是由 HEAD 决定的。所以创建分支的本质就是多创建一个指针。

​ HEAD 如果指向 master,那么就在 master 分支上。

​ HEAD 如果执向 hot-fix,那么现在就在 hot-fix 分支上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潮浪之巅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值