星屿浅奈 ✧ Saneko

Back

常用Git指令Blur image

一、Git基础配置#

# 设置全局用户名和邮箱(每次提交都会记录这些信息)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

# 查看所有配置信息
git config --list
bash

这些配置通常只需要设置一次,它们会被保存在用户目录下的.gitconfig文件中

二、仓库操作基础#

1. 创建与克隆仓库#

# 在当前目录初始化一个新的Git仓库
git init

# 克隆远程仓库到本地
git clone <仓库URL>

# 克隆特定分支
git clone -b <分支> <仓库URL>
bash

2. 远程仓库管理#

# 查看已配置的远程仓库
git remote -v

# 添加新的远程仓库
git remote add <远程名> <仓库URL>

# 修改远程仓库地址
git remote set-url <远程名> <新URL>

# 删除远程仓库
git remote remove <远程名>
bash

origin一般是在克隆(Clone)仓库时自动创建的默认远程仓库别名

三、日常开发工作流#

1. 状态查看与文件操作#

# 查看当前仓库状态(推荐频繁使用)
git status

# 查看工作区和暂存区的具体更改
git diff

# 查看已暂存文件的更改
git diff --cached
bash

2. 提交更改#

# 添加文件到暂存区
git add <文件>       # 添加特定文件
git add .              # 添加所有更改的文件

# 提交更改并添加描述信息
git commit -m "有意义的提交信息"

# 修改最后一次提交(未推送前)
git commit --amend
bash

常见 Git Commit 关键字及含义

关键字用途示例说明
featfeat: add user login新增功能(Feature),通常对应 semver 的 MINOR 版本更新。
fixfix: button click bug修复 Bug,通常对应 semver 的 PATCH 版本更新。
docsdocs: update README文档更新(如 README、注释等)。
stylestyle: format code代码样式调整(如空格、缩进、分号等),不改变逻辑。
refactorrefactor: simplify logic代码重构(既非新增功能,也非修复 Bug)。
perfperf: optimize rendering性能优化(Performance)。
testtest: add unit test测试相关(新增或修改测试代码)。
chorechore: update deps杂项任务(如构建配置、依赖更新等)。
buildbuild: upgrade webpack构建系统或工具链变更(如 Webpack、Babel 等)。
cici: fix GitHub ActionsCI/CD 配置变更(如 GitHub Actions、Jenkins)。
revertrevert: remove feature X回滚之前的提交。
mergemerge: branch A into main合并分支(通常由 Git 自动生成,手动提交时应避免使用)。

3. 分支管理#

四、同步与协作#

1. 拉取与推送#

强制推送会覆盖远程历史,只应在你完全确定的情况下使用,特别是在团队协作中要避免随意使用

2. 合并与变基#

# 合并指定分支到当前分支
git merge <分支>

# 变基当前分支到指定分支(使历史更线性)
git rebase <分支>
bash
  • 合并(merge)会创建一个新的合并提交,保留完整的历史
  • 变基(rebase)会重写提交历史,使分支看起来像是直接基于目标分支开发的

五、查看历史记录#

# 查看完整的提交历史
git log

# 简洁版提交历史
git log --oneline

# 查看特定文件的修改历史
git blame <文件>
bash

六、标签管理#

七、常用小技巧#

1. 强制重置到远程分支状态#

git fetch origin
git reset --hard origin/<分支>
bash
常用Git指令
https://saneko.me/blog/c37071ba3194
Author Saneko
Published at July 21, 2025
Buy me a cup of coffee ☕.
Comment seems to stuck. Try to refresh?✨