Git
常见场景
| 关键词 | 含义 | 示例 |
|---|---|---|
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.namegit 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"
本地仓库

管理指令
基本指令

查看修改状态
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/xxx从develop中创建,一般是同期并行开发但不同期上线。开发完成后合并到develophotfix/xxx从master派生的分支,一般作为线上 bug 修复使用。修复后合并到master/test/develop分支上
远程仓库
创建远程仓库
在 github 中:
- create new…
- create new repository
配置 SSH 公钥
ssh-keygen -t rsa 不断回车。如果公钥已存在则会覆盖Github 设置帐户供公钥
- 获取公钥
cat ~/.ssh/id_rsa.pub - 添加到账户设置中
- 验证配置是否成功
ssh -T git@github.com
- 获取公钥
本地仓库关联远程仓库
git remote add origin <git_url>
- origin 是远程仓库名称(一般都取这个名字),因为有可能一个本地仓库关联多个远程仓库(比较少见)
查看远程仓库
git remote
本地代码同步远程仓库
git push origin <local_branch:remote_branch>

- 使用
--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
切换分支前必须要上传
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 木素音的小站!