学习随笔

GQMake实验室

安装与配置

下载安装

下载安装:

  • Windows:访问 https://git-scm.com/ 下载并安装。
  • MacOS:安装 Xcode Command Line Tools (xcode-select –install) 或使用 Homebrew (brew install git)。
  • Linux:使用包管理器,例如 sudo dnf install git

图形化 UI 工具:

  • MacOS:SourceTree
  • Windows:TortoiseGit

基础配置

1
2
3
4
5
6
# 配置提交人信息
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.com"

# 查看配置信息
git config --global --list

核心概念与流程

理解区域概念

  1. 工作区(Working Directory)

就是你电脑上当前能看到的项目目录,你在这里编辑文件。

  1. 暂存区(Staging Area)

当你编辑完文件后,通过git add其实就是把变动文件内容添加到了暂存区。

  1. 仓库(Repository)

通过 git commit将暂存区的所有变动内容,提交到仓库的当前分支。这个仓库可以理解为你电脑本地上的 Git 仓库。

  1. 远程库(origin)

将你的本地仓库推送到远程库上,这样既可以用作仓库的备份,又可以与其他人进行协作。

基本工作流程

可以理解为:

  • 在工作区对文件进行编辑;
  • 将有变动的文件统统放到暂存区;
  • 然后一次性提交到仓库分支;
  • 最后将本地仓库分支与远程仓库分支进行同步备份。

工作区-(git add)->暂存区-(git commit)->仓库-(git push)->远程库

基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 初始化git仓库
cd /myproject
git init

# 添加所有变动文件
git add .

# 提交到仓库
git commit -m "仓库初始化"

# 查看工作区/暂存区文件修改状态
git status

# 查看提交历史
git log

分支命令

可以把分支想象成一个平行宇宙,在一个分支上开发不会影响到其他分支。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看所有分支
git branch

# 创建分支
git branch dev
# 切换分支
git checkout dev

# 创建并切换分支
git checkout -b dev

# 合并分支
git checkout master
git merge dev

# 删除分支
git branch -d dev

远程库协作

到目前为止,所有操作都在本地。要团队协作,就需要一个远程仓库作为“中央服务器”,常用的有 GitHub、GitLab、Gitee。

[!tip]
SSH 生产密钥与配置认证,这里不再赘述。

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 克隆远程仓库
git clone git@github.com:username/repository.git

# 关联远程仓库,并给它起个别名叫 "origin"
git remote add origin git@github.com:username/repository.git

# 拉取当前分支的更新
# 相当于执行了 git fetch(获取) 和 git merge(合并) 两条命令
git pull

# 第一次推送时,需要-u,将当前分支与远程分支建立关联
git push -u origin master
# 之后当前分支推送,直接使用即可
git push

从远程库克隆

克隆时远程仓库和分支信息都已知,所以会自动建立好关联。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 克隆远程仓库
git clone https://github.com/company/awesome-project.git
cd awesome-project
# 此方式将自动关联好仓库和分支

# 查看关联的远程仓库信息
git remote -v
# 输出示例:
# origin https://github.com/company/awesome-project.git (fetch)
# origin https://github.com/company/awesome-project.git (push)

# 查看所有分支(本地和远程)
git branch -a
# 输出示例:
# * master
# remotes/origin/HEAD -> origin/main
# remotes/origin/master
# remotes/origin/develop
# remotes/origin/feature/login

本地添加远程库

先将本地项目,初始化为 git 仓库(本地)

1
2
3
4
git init

git add.
git commit -m "初始化项目"

将本地仓库和分支,与远程库建立好关联,才能协作使用。

1
2
3
4
5
6
7
8
9
10
11
# 查看是否已关联远程仓库
git remote -v
# 没有任何输出,说明还没有关联远程库

# 关联远程库
git remote add origin git@github.com:username/repository.git

# 首次推送远程库,需要 -u 将当前分支与远程分支建立关联
git push -u origin master
# 之后当前分支推送,直接使用即可
git push

日常工作流程

以开发一个新功能为例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 拉取主分支最新代码
git checkout master
git pull
# 或
git pull origin master

# 新建功能分支,并切换到新分支
git checkout -b feature/user_manage
# 或 基于master新建分支
git checkout -b feature/user_manage origin/master

# 代码开发,并阶段性提交
git add .
git commit -m '用户管理列表'

# 将本地新分支,首次关联推送到远程库分支
git push -u origin feature/user_manage

如果新功能 1 天完成不了,那么后续几天。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 拉取主分支最新代码
git checkout master
git pull

# 切换到新功能分支
git checkout feature/user_manage

# 合并主分支最新代码 到 新功能分支
git merge master
# 或
git rebase master

# 然后可以今天的工作了
git add .
git commit -m '用户详情'

# 推送前,新拉取(当前分支)
git pull
git push

新功能研发完成后,将功能分支合并到主分支。

1
2
3
4
5
6
7
8
9
git checkout master

git pull

git merge feature/user_manage

git push

git branch -d feature/user_manage

分支策略

  • master/prod:生产环境
  • pre:预发布分支
  • test:测试分支
  • dev:开发分支
  • feature/:新功能分支
  • fix/:bug 修复
  • hotfix/:紧急生产问题修复

提交规范

commit 简要格式:type:descript

  • feat: 新功能、新特性
  • fix: 修改 bug
  • perf: 更改代码,以提高性能
  • refactor: 代码重构
  • docs: 文档修改
  • style: 代码格式修改
  • test: 测试用例新增、修改
  • build: 影响项目构建或依赖项修改
  • revert: 恢复上一次提交
  • ci: 持续集成相关文件修改
  • release: 发布新版本
  • chore: 其他修改(不在上述类型中的修改)

[!example] 样例
feat: 用户管理功能

标签策略

基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建标签(轻量标签:无辅助说明信息)
git tag v1.0.0
# 创建标签(附注标签,包含完整信息:标签名、作者、日期、说明信息)
git tag -a v1.0.0 -m "正式环境发版 1.0.0"

# 推送标签(单个)
git push origin v1.0.0
# 推送所有标签
git push origin --tags

# 列出所有标签
git tag

# 查看标签详情
git show v1.0.0

策略约定

1)正式环境:主版本号.次版本号.修订号

1
2
3
4
v1.0.0    # 正式发布
v1.1.0 # 新增功能
v1.1.1 # Bug修复
v2.0.0 # 不兼容的API修改

2)其他环境

1
2
3
4
# 预发布版本
v1.0.0-alpha.1 # 内部测试版
v1.0.0-beta.1 # 公开测试版
v1.0.0-rc.1 # 发布候选版

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

0%