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修复bugfix: 修复分页计算错误
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(推荐中小型团队)

  1. main 分支始终保持可部署状态
  2. main 创建功能分支
  3. 频繁提交并推送到远程
  4. 通过Pull Request进行代码审查
  5. 审查通过后合并到 main
  6. 合并后立即部署

Git Flow(推荐大型项目)

  • main:生产环境代码
  • develop:开发环境代码
  • feature/*:新功能开发
  • release/*:版本发布准备
  • hotfix/*:紧急修复

结语

Git是一个功能极其强大的工具,本速查表涵盖了日常开发中95%以上的使用场景。建议将此页面加入书签,在遇到不确定的Git操作时随时查阅。如果你在处理代码时需要格式化JSON数据或测试正则表达式,可以试试我们的 JSON格式化工具正则表达式测试工具

记住Git的核心理念:频繁提交、写好提交信息、善用分支。掌握了这些,你就能在任何项目中游刃有余。

相关文章