「学习笔记」Git基础

1. Git基础

Git官网(下载速度慢) https://git-scm.com/

阿里云加速(下载速度快):https://npm.taobao.org/mirrors/git-for-windows/

1.1 版本管理

1.1.1什么是版本管理

版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。

1.1.2 Git基本概念

7WuLUf.jpg

  • 版本库👉.git
  • 当我们使用git管理文件时,比如git init时,会创建出一个.git文件,我们把这个文件称为版本库。
  • .git文件另外一个作用就是它在创建的时候,会自动创建master分支,并且将HEAD指针指向master分支。
  • 工作区
  • 本地项目存放文件的位置,即workspace
  • 暂存区(Index/Stage)
  • 暂时存放文件的地方,通过add命令将工作区的文件加到缓冲区
  • 本地仓库(Repository)
  • 通常情况下,我们使用commit命令可以将暂存区的文件添加到本地仓库
  • 通常而言,HEAD指针指向的是master分支
  • 远程仓库(Remote)
  • GitHub托管项目时,它就是一个远程仓库
  • 通常我们使用clone命令将远程仓库代码拷贝下来,本地代码更新后,通过push推送到远程仓库

1.1.3 人为维护文档版本的问题

  1. 文档数量多且命名不清晰导致文档版本混乱
  2. 每次编辑文档都需要复制,不方便
  3. 多人同时编辑同一个文档,容易产生覆盖

1.2 Git 是什么

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。

7WKZ24.jpg

1.3 基本工作流程

git仓库暂存区工作目录
用于存放提交记录临时存放被修改文件被Git管理的项目目录

1.4 Git使用前配置

在使用git前,需要告诉git你是谁,在向git仓库中提交时需要用到。

  1. 配置提交人姓名:git config --global user.name 提交人姓名
  2. 配置提交人邮箱:git config --global user.email 提交人邮箱
  3. 查看git配置信息:git config --list

「注意」

  1. 如果要对配置信息进行修改,重复上述命令即可。
  2. 配置只需要执行一次。

1.5 提交步骤

  1. git init初始化git仓库
  2. git status查看文件状态
  3. git add 文件列表追踪文件
  4. git commit -m 提交信息向本地仓库中提交代码
  5. git log查看提交记录
  6. git push https://github.com/ovfan/git-demo.git master本地仓库推送到GitHub远程仓库
  7. git remote add origin https://github.com/ovfan/git-demo.git 为远端仓库地址添加别名。
  8. 添加完别名后,下次推送使用git push origin master
  9. git push -u 远程仓库地址别名 分支名称 -u 记住推送地址及分支,下次推送只需要输入git push即可

1.6 撤销

  • 用暂存区中的文件覆盖工作目录中的文件:git checkout 文件
  • 将文件从暂存区中删除:git rm --cached 文件
  • 将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作区目录:git reset --hard commitID

2. Git 进阶

2.1 分支

为了便于理解,可以认为分支就是当前工作目录中代码的一份副本,使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。

2.1.1 分支细分

  1. 主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。

7WMnfS.png

  • 主分支,用于部署生产环境的分支,确保稳定性。
  • master分支一般由develop以及hotfix分支合并,任何情况下都不能直接修改代码。
  1. 开发分支(develop):作为开发的分支,基于 master 分支创建。
7WMKSg.png
  • develop为开发分支,通常情况下,保存最新完成以及bug修复后的代码。
  • 开发新功能时,feature分支都是基于develop分支下创建的。
  1. 功能分支(feature):作为开发具体功能的分支,基于开发分支创建。

7WMmY8.png

  • 开发新功能,基本上以develop为基础创建feature分支。
  • 分支命名:feature/ 开头的为特性分支, 命名规则: feature/user_module、 feature/cart_module。

4.release分支

  • release 为预上线分支,发布提测阶段,会release分支代码为基准提测。

5.hotfix分支

  • 分支命名:hotfix/ 开头的为修复分支,它的命名规则与 feature 分支类似。
  • 线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支和develop分支。

「功能分支 -> 开发分支 -> 主分支」

2.12分支命令

  • git branch 查看本地分支
  • git branch -r查看远程分支
  • git branch 分支名称创建分支
  • git checkout -b 分支名称创建并切换到新建分支
  • git checkout 分支名称切换分支
  • git merge 来源分支合并分支
  • git branch -d 分支名称删除分支
  • 分支被合并后才允许删除
  • git branch -D强制删除
  • git branch -m <oldbranch-name> <newbranch-name>重命名分支
  • git add .全部上传到缓存区
  • git add 指定文件指定文件上传到缓存区

2.2 暂时保存更改

在git 中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。

使用场景:分支临时切换

  • 存储临时改动:git stash
  • 恢复改动:git stash pop

3. GitHub

当和开发团队共享数据时,设置一个远程仓库,可以把它看成一个文件管理服务器,利用这个服务器可以与开发团队的其他成员进行数据交换。

3.1 拉取操作

  • 克隆远端数据仓库到本地:git clone 仓库地址
  • 拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称

3.2 ssh免登录

生成密钥:ssh-keygen

密钥存储目录:C:\Users\lenovo.ssh

公钥名称:id_rsa.pub

私钥名称:id_rsa

3.3 GIT忽略清单

将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。

git忽略清单文件名称:「.gitignore」

将工作目录中的文件全部添加到暂存区:git add .

看看如何配置该文件信息。👇

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 此行为注释 会被Git忽略

# 忽略 node_modules/ 目录下所有的文件
node_modules


# 忽略所有.vscode结尾的文件
.vscode

# 忽略所有.md结尾的文件
*.md

# 但README.md 除外
!README.md

# 会忽略 doc/something.txt 但不会忽略doc/images/arch.txt
doc/*.txt

# 忽略 doc/ 目录下所有扩展名为txt文件

doc/**/*.txt

Github Pages 绑定自定义域名

如果觉得 GitHub 自动分配的二级域名有点长,还不太好记忆。可以绑定一下自定义域名。

域名购买

首先,你得先注册一个域名。

我这用的是阿里云,也可以去腾讯云、GoDaddy等注册也行!!

阿里云新用户活动界面:https://promotion.aliyun.com/ntms/act/domainbrand.html

阿里云域名1元首年:https://wanwang.aliyun.com/domain/1yuan

注意:.cn 后缀的好像必须要备案才能正常使用!其它后缀是国内服务器要备案。


域名解析

购买好域名后打开控制台

控制台

打开:产品与服务 —》 域名

域名管理

注意:新购买可能需要实名认证,到实名认证页面上传身份证照片和输入身份证号码就等他认证成功就行了

实名认证完继续如下步骤:

找到你的域名,点击解析:

解析域名

点击添加记录:

添加记录

A记录

CNAME记录

填好直接保存就行了。

分别添加 四个A 记录 和 一个 CNAME 记录

A 记录需要添加的 ip 如下:

1
2
3
4
5
PLAINTEXT
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

添加完成后如图:

添加完成解析地址


手机客户端

手机客户端也可以进行域名解析,首先下载阿里云的手机客户端。

打开登陆后在主页找到域名管理:

域名管理

找到你的域名,点击旁边的 三点图标,再选择解析:

解析域名

点击右上角的+加号添加一条解析记录:

解析内容和上面网页端一样,分别添加 四个A 记录 和 一个 CNAME 记录

添加记录完成


修改GitHub Pages 设置

域名解析好就可以到GitHub Pages 设置添加自定义域名了

打开你的仓库地址,选择 setting

打开设置

左侧菜单找到 Pages,在 Custom domain 处输入你的域名。

填好域名点击 save 保存就好了!,就会发现你的网址变成了自定义的域名。

输入自定义域名

如果下面的HTTPS没有打开建议勾选上。

https

补充内容

如果你是用 Hexo 生成的静态网站,需要在 source 文件夹内创建个CNAME 文件,如果文件存在则直接打开编辑。
用任意文本编辑器打开,把你的域名输入进去,保存就行了。例如,我的域名是guguge.top内容则为:

CNAME文件内容

CNAME文件内容