Git命令速查表 2026 - 开发者必备
Git命令速查表 2026 - 开发者必备
从基础到高级的Git命令完全指南,涵盖日常开发中的所有场景。
2026年3月16日5分钟阅读
前言:为什么每个开发者都需要精通Git
Git是世界上使用最广泛的分布式版本控制系统。无论你是独立开发者还是大型团队的一员,Git都是日常工作中不可或缺的工具。然而,Git的命令众多且参数复杂,即使是经验丰富的开发者也经常需要查阅文档。
本速查表按照实际使用场景组织,涵盖了从基础操作到高级技巧的所有Git命令。建议收藏本页面,在需要时随时查阅。
基础配置
在开始使用Git之前,你需要进行一些基本配置:
# 设置用户名和邮箱(全局配置)
git config --global user.name "你的名字"
git config --global user.email "your.email@example.com"
# 查看所有配置
git config --list
# 设置默认分支名为main
git config --global init.defaultBranch main
# 设置默认编辑器
git config --global core.editor "code --wait"
# 配置换行符处理(跨平台协作时很重要)
# Windows:
git config --global core.autocrlf true
# macOS/Linux:
git config --global core.autocrlf input
# 启用彩色输出
git config --global color.ui auto
# 配置常用别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm "commit -m"
git config --global alias.lg "log --oneline --graph --all"
仓库初始化与克隆
# 初始化一个新的Git仓库
git init
# 在指定目录初始化
git init my-project
# 克隆远程仓库
git clone https://github.com/user/repo.git
# 克隆到指定目录
git clone https://github.com/user/repo.git my-folder
# 浅克隆(只获取最新的提交历史,适合大型仓库)
git clone --depth 1 https://github.com/user/repo.git
# 克隆指定分支
git clone -b develop https://github.com/user/repo.git
日常工作流命令
查看状态和变更
# 查看工作区状态
git status
# 查看简洁状态
git status -s
# 查看未暂存的更改
git diff
# 查看已暂存的更改
git diff --staged
# 查看两个分支之间的差异
git diff main..feature-branch
# 查看某个文件的更改历史
git log -p filename.js
# 查看某个文件每一行的最后修改者
git blame filename.js
暂存与提交
# 暂存单个文件
git add filename.js
# 暂存多个文件
git add file1.js file2.js file3.js
# 暂存所有更改
git add .
# 交互式暂存(选择部分更改)
git add -p
# 提交
git commit -m "feat: 添加用户登录功能"
# 添加并提交已追踪的文件
git commit -am "fix: 修复登录页面样式问题"
# 修改上一次提交(注意:不要修改已推送的提交)
git commit --amend -m "feat: 添加用户登录和注册功能"
# 创建空提交(用于触发CI/CD)
git commit --allow-empty -m "chore: trigger CI build"
提交规范
推荐使用约定式提交(Conventional Commits)格式:
| 前缀 | 用途 | 示例 |
|---|---|---|
feat | 新功能 | feat: 添加搜索功能 |
fix | 修复bug | fix: 修复分页计算错误 |
docs | 文档更新 | docs: 更新API文档 |
style | 代码格式 | style: 统一缩进为2空格 |
refactor | 重构 | refactor: 优化数据库查询逻辑 |
test | 测试 | test: 添加用户模块单元测试 |
chore | 构建/工具 | chore: 升级webpack到v6 |
分支管理
# 查看所有本地分支
git branch
# 查看所有分支(包括远程)
git branch -a
# 创建新分支
git branch feature/user-auth
# 创建并切换到新分支
git checkout -b feature/user-auth
# 或使用更新的switch命令
git switch -c feature/user-auth
# 切换分支
git checkout main
git switch main
# 删除本地分支(已合并的)
git branch -d feature/user-auth
# 强制删除未合并的分支
git branch -D feature/experimental
# 重命名当前分支
git branch -m new-name
# 查看各分支最后一次提交
git branch -v
合并与变基
合并(Merge)
# 将feature分支合并到当前分支
git merge feature/user-auth
# 只进行快进合并
git merge --ff-only feature/user-auth
# 禁止快进合并(总是创建合并提交)
git merge --no-ff feature/user-auth
# 合并时压缩提交
git merge --squash feature/user-auth
# 中止正在进行的合并
git merge --abort
变基(Rebase)
# 将当前分支变基到main
git rebase main
# 交互式变基(修改最近3次提交)
git rebase -i HEAD~3
# 中止变基
git rebase --abort
# 继续变基(解决冲突后)
git rebase --continue
# 跳过当前冲突的提交
git rebase --skip
注意:永远不要对已经推送到公共仓库的提交进行变基。
解决冲突
当合并或变基遇到冲突时:
# 1. 查看冲突文件
git status
# 2. 手动编辑冲突文件,寻找 <<<<<<< ======= >>>>>>> 标记
# 3. 解决冲突后标记为已解决
git add resolved-file.js
# 4. 继续合并或变基
git merge --continue
# 或
git rebase --continue
远程仓库操作
# 查看远程仓库
git remote -v
# 添加远程仓库
git remote add origin https://github.com/user/repo.git
# 修改远程仓库URL
git remote set-url origin https://github.com/user/new-repo.git
# 获取远程更新(不合并)
git fetch origin
# 获取所有远程的更新
git fetch --all
# 拉取并合并
git pull origin main
# 拉取并变基(保持线性历史)
git pull --rebase origin main
# 推送到远程
git push origin main
# 推送新分支并设置上游跟踪
git push -u origin feature/new-feature
# 删除远程分支
git push origin --delete feature/old-feature
# 推送所有本地标签
git push --tags
暂存工作进度(Stash)
当你需要临时切换分支但又不想提交当前的工作时:
# 暂存当前更改
git stash
# 暂存并添加描述
git stash push -m "WIP: 用户表单验证"
# 暂存包括未追踪的文件
git stash -u
# 查看所有暂存
git stash list
# 恢复最近的暂存(保留暂存记录)
git stash apply
# 恢复最近的暂存(删除暂存记录)
git stash pop
# 恢复指定的暂存
git stash apply stash@{2}
# 删除指定暂存
git stash drop stash@{1}
# 清除所有暂存
git stash clear
查看历史与日志
# 查看提交历史
git log
# 单行显示
git log --oneline
# 图形化显示
git log --oneline --graph --all
# 查看最近5次提交
git log -5
# 按作者筛选
git log --author="张三"
# 按日期筛选
git log --after="2026-01-01" --before="2026-03-01"
# 按提交信息搜索
git log --grep="fix"
# 查看某个文件的修改历史
git log --follow -p -- filename.js
# 显示每次提交的统计信息
git log --stat
# 查看谁在什么时候修改了什么
git shortlog -sn
撤销与回退
这是Git中最容易混淆的部分,请谨慎操作:
# 撤销工作区的修改(未暂存的更改)
git checkout -- filename.js
git restore filename.js
# 取消暂存(保留工作区修改)
git reset HEAD filename.js
git restore --staged filename.js
# 回退到上一次提交(保留更改在工作区)
git reset --soft HEAD~1
# 回退到上一次提交(保留更改在暂存区和工作区)
git reset --mixed HEAD~1
# 回退到上一次提交(丢弃所有更改,危险操作!)
git reset --hard HEAD~1
# 创建一个新的提交来撤销指定提交(安全的方式)
git revert <commit-hash>
# 撤销多个连续提交
git revert <oldest-hash>..<newest-hash>
提示:在公共分支上,始终优先使用 git revert 而非 git reset,因为revert不会改变历史。
标签管理
# 创建轻量标签
git tag v1.0.0
# 创建附注标签
git tag -a v1.0.0 -m "正式发布1.0版本"
# 查看所有标签
git tag -l
# 查看特定模式的标签
git tag -l "v1.*"
# 推送单个标签
git push origin v1.0.0
# 推送所有标签
git push --tags
# 删除本地标签
git tag -d v1.0.0
# 删除远程标签
git push origin --delete v1.0.0
高级技巧
Cherry-pick
从其他分支选择性地合并某个提交:
# 将指定提交应用到当前分支
git cherry-pick <commit-hash>
# Cherry-pick多个提交
git cherry-pick <hash1> <hash2> <hash3>
# Cherry-pick但不自动提交
git cherry-pick --no-commit <commit-hash>
Bisect(二分查找bug)
# 开始二分查找
git bisect start
# 标记当前版本有bug
git bisect bad
# 标记某个已知正常的版本
git bisect good <commit-hash>
# Git会自动checkout中间的提交,你测试后标记
git bisect good # 或 git bisect bad
# 找到问题提交后,结束查找
git bisect reset
Worktree(多工作树)
同时在多个分支上工作,无需频繁切换:
# 创建新的工作树
git worktree add ../hotfix-branch hotfix/critical-bug
# 查看所有工作树
git worktree list
# 删除工作树
git worktree remove ../hotfix-branch
Reflog(引用日志)
Git的"后悔药",记录了HEAD的所有移动:
# 查看引用日志
git reflog
# 恢复误删的提交
git checkout <reflog-hash>
# 恢复误删的分支
git branch recovered-branch <reflog-hash>
实用的.gitignore模式
# 依赖目录
node_modules/
vendor/
.venv/
# 构建输出
dist/
build/
.next/
out/
# 环境变量
.env
.env.local
.env.*.local
# IDE配置
.vscode/
.idea/
*.swp
*.swo
# 操作系统文件
.DS_Store
Thumbs.db
# 日志文件
*.log
npm-debug.log*
常见问题排查
如何找回已删除的分支?
git reflog | grep "checkout"
git branch recovered-branch <hash>
如何清理大文件?
使用 JSON格式化工具 检查配置文件后,你可以:
# 查找仓库中的大文件
git rev-list --objects --all | git cat-file --batch-check | sort -k3 -n -r | head -20
如何统计代码贡献?
# 按作者统计提交数
git shortlog -sn --all
# 统计代码行数变化
git log --shortstat --author="你的名字" | grep "changed"
推荐的Git工作流
GitHub Flow(推荐中小型团队)
main分支始终保持可部署状态- 从
main创建功能分支 - 频繁提交并推送到远程
- 通过Pull Request进行代码审查
- 审查通过后合并到
main - 合并后立即部署
Git Flow(推荐大型项目)
main:生产环境代码develop:开发环境代码feature/*:新功能开发release/*:版本发布准备hotfix/*:紧急修复
结语
Git是一个功能极其强大的工具,本速查表涵盖了日常开发中95%以上的使用场景。建议将此页面加入书签,在遇到不确定的Git操作时随时查阅。如果你在处理代码时需要格式化JSON数据或测试正则表达式,可以试试我们的 JSON格式化工具 和 正则表达式测试工具。
记住Git的核心理念:频繁提交、写好提交信息、善用分支。掌握了这些,你就能在任何项目中游刃有余。