常见场景

关键词 含义 示例
init 初始化项目或功能 init: 初始化博客项目结构
feat​✅ 新功能、新文章 feat: 添加 RSS 订阅功能
fix​✅ 修复 Bug 或问题 fix: 修复首页分页无法点击的问题
docs​✅ 修改文档、文章内容 docs: 更新 README 添加部署步骤说明
style​✅ 样式调整,无逻辑更改 style: 调整代码块字体大小和行间距
refactor​✅ 代码重构,无新增或修复功能 refactor: 重构导航栏逻辑,优化加载速度
chore​✅ 杂项,如构建配置、依赖更新等 chore: 更新依赖版本和构建脚本
perf 性能优化 perf: 提升首页渲染性能
test 添加或修改测试 test: 添加文章分页功能的单元测试
build​✅ 构建系统修改、打包相关 build: 修改构建配置为 GitHub Pages 支持路径
ci 持续集成相关(如 GitHub Actions) ci: 新增自动部署脚本

常用指令(Linux 指令)

鼠标操作

  • 双击复制
  • 滚轮黏贴

自带命令

  • ls -al​ 查看当前目录
  • cat​ 查看文件内容
  • touch​ 创建文件
  • vi​ vi 编辑器
  • clear​ 清屏

自定义命令

  • git-log​ 用于输出 git 提交日志
    • git log --pretty=oneline --abbrev-commit --all --graph
  • ll​ 用于输出当前目录所有文件及基本信息
    • alias ll='ls -al'

配置

工具

Git GUI:图形界面工具
Git Bash:命令行工具(Linux)

用户配置

  • 设置用户信息
    • git config --global user.name "musuyin"
    • git config --global user.email "musuyin@qq.com"
  • 查看用户信息
    • git config --global user.name
    • git config --global user.email

别名配置

  • 打开用户目录,创建 .bashrc ​ 文件
    • 若不允许创建 . ​ 开头的文件,可在 gitBash 中执行 touch ~/.bashrc
  • .bashrc ​ 文件中加入配置指令
  • 在 gitBash 中执行 source -/.bashrc

乱码问题

  • 在 gitBash 中执行:git config -global core.quotepath false
  • ${git_home}/etc/bash.bashrc 文件加入下面两行(git_home 表示 git 的安装路径)
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

本地仓库

image

管理指令

基本指令

image

查看修改状态

git status

从工作区加入暂存区

git add​ add 后加文件名,可以直接使用.​(通配符)来添加所有的文件

添加文件至忽略列表

如果有文件不希望 git 上传

  • 创建一个 .gitignore ​,在其中输入不希望上传的文件名

从暂存区上传到仓库

git commit -m "注释"

查看提交日志

git log [option] ​ 都已经包含在配置好的 git-log ​ 中

[option]:

  • --all 显示所有分支
  • --pretty=oneline 将提交信息显示为一行
  • --abbrev-commit 使得输出的 commit 更短
  • --graph 以图的形式展现

完整形式:

git log --pretty=oneline --abbrev-commit --all --graph

版本回退

git reset --hard commitID

查看已经删除的记录

git reflog

合并提交

通常用于代码提交前的清理,常用命令是 rebase -i ​:

git rebase -i HEAD~N

将最近 N 次提交合并。会进入编辑器,看到类似:

pick 123abc commit message 1
pick 456def commit message 2
pick 789ghi commit message 3

你可以把要合并的提交改为 squash​ 或 s​:

pick 123abc commit message 1
squash 456def commit message 2
squash 789ghi commit message 3

然后保存,根据提示合并 commit message 即可。

分支

将工作从主线上分离来进行重大 Bug 修改,避免对主线造成影响

查看本地分支

git branch​

git branch -a	# 查看所有分支

创建本地分支

git branch <branch_name>

切换分支

git checkout <branch_name>	# 切换分支
git checkout -b <branch_name> # 创建(若不存在)并切换
  • 每次只能在一个分支上进行操作
  • HEAD 指向当前的分支
  • 通过 gitBash 面板创建出的文件会根据分支而展现,但右键创建的文件会一直存在

合并分支

git merge <branch_name>
  • 一个分支上的提交可以合并到另一个分支上
  • 但是被合并的分支还会存在,需要手动删除
  • 一般是先切换到 master 上,再进行 merge

删除分支

不能删除当前分支,只能删除其他分支

git branch -d <branch_name>	# 经过检查后删除
git branch -D <branch_name>	# 不做检查强制删除

解决冲突

在两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时候需要手动解决冲突

  • 处理文件中冲突的地方
  • 将解决完冲突的文件加入暂存区
  • 提交到仓库

使用原则

  • master / main 生产分支,线上分支,作为线上运行的应用对应的分支

  • develop 开发分支,作为主要的开发分支。从 master / main 中创建,开发完成后合并到主分支中

  • feature/xxxdevelop 中创建,一般是同期并行开发但不同期上线。开发完成后合并到 develop

  • hotfix/xxxmaster 派生的分支,一般作为线上 bug 修复使用。修复后合并到 master / test / develop 分支上

    image

远程仓库

创建远程仓库

在 github 中:

  1. create new…
  2. create new repository

配置 SSH 公钥

  1. ssh-keygen -t rsa​ 不断回车。如果公钥已存在则会覆盖

  2. Github 设置帐户供公钥

    1. 获取公钥 cat ~/.ssh/id_rsa.pub
    2. 添加到账户设置中
    3. 验证配置是否成功 ssh -T git@github.com

本地仓库关联远程仓库

git remote add origin <git_url>
  • origin 是远程仓库名称(一般都取这个名字),因为有可能一个本地仓库关联多个远程仓库(比较少见)

查看远程仓库

git remote

本地代码同步远程仓库

git push origin <local_branch:remote_branch>

image

  • 使用 --set-upstream ​ 绑定关系后,可以直接输入 git push ​,省略了远端名和分支名
  • git branch -vv​ 查看本地和远程分支的对应关系

从远程仓库克隆

git clone <repo_url> [dir]
  • 如果已经有一个远程仓库,可以直接克隆到本地。会将所有内容下载,使用频率并不频繁
    • 本地目录可以省略,会自动生成
    • 可以在另外的本地文件夹创建

从远程仓库抓取和拉取

git fetch [remote_name] [branch_name]
git pull [remote_name] [branch_name]
  • 抓取:git fetch [remote name] [branch name]
    • 将远端仓库里的更新抓取到本地,不会进行合并;如果不指定名称则会抓取所有分支
  • 拉取:git pull [remote name] [branch name]
    • 将远端仓库的修改拉到本地并进行自动合并,相当于 pull = fetch + merge

解决远端冲突

  • 修改了同一个文件的同一行,需要手动进行修改
  • push 之前,先进行一次 pull,进行冲突解决

查看远程连接

git remote -v​

解除仓库关联

git remote remove <remote_name>

IDEA 操作 Git

指令

创建仓库

  • VCS
  • Import into Version Control
  • Create Git Repository
  • Choose Project

提交代码

  • pull
  • 输入 SSH

查看

Log

克隆

  • VCS
  • Checkout from Version Control
  • Git
  • Input URL

创建分支

右键创建 new branch
可以在各个点创建分支

冲突解决

解决好冲突之后必须 add 一下

TIP

切换分支前必须要上传