商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Git中常用命令速查手册

Git中常用命令速查手册

  发布于2026-07-07 阅读(0)

扫一扫,手机访问

本篇是 Git 系列的第 6 篇,也是整个系列的收官之作——一份实打实的命令速查手册。

Git中常用命令速查手册

前5篇我们从入门讲到企业级实战,覆盖了本地仓库、分支管理、远程操作、多人协作和企业模型。但说实话,5篇文章里堆了100多个命令,新人最常遇到的卡点是:

  • “那个命令的参数到底怎么用来着?”
  • “现在这个场景到底该用哪个命令?”
  • “命令这么多,能不能给我一张表直接查?”

没错,这篇就是来“治”这个问题的。

所有在前5篇中间出现过的命令,全部按功能分类整理成手册。每个命令配上一句话功能说明、最常用参数和典型示例。不用谢,它就是你的Git命令字典——以后写代码卡壳了,直接翻。

本节目标:让你手边随时有一张Git命令速查表。原理部分不再深入(详见第1-5篇),咱们只讲怎么用。

通过本文,你将掌握:

技能 应用场景
12大类Git命令的速查 写代码时随时翻
80+核心命令的标准用法 覆盖95%日常场景
效率别名的配置 让Git更好用
常用操作的标准流程 团队统一规范

前置知识: 读过前5篇任意一篇即可。这篇是工具书,直接当字典用。

一、配置类命令

命令 功能 常用参数 示例
git config 配置Git --global(全局)
--local(当前仓库)
--list(查看)
git config --global user.name "Your Name"
git config --global user.name 设置用户名 - git config --global user.name "say_fall"
git config --global user.email 设置邮箱 - git config --global user.email "your@email.com"
git config --global init.defaultBranch 设置默认分支名 - git config --global init.defaultBranch main
git config --global color.ui 开关颜色 auto / false / true git config --global color.ui auto
git config --global pull.rebase pull 行为 true / false git config --global pull.rebase true
git config --global rerere.enabled 开启冲突记忆 true / false git config --global rerere.enabled true
git config --global core.editor 设置默认编辑器 - git config --global core.editor vim
git config --list 查看所有配置 - git config --list
git config --get 查看某项配置 - git config --get user.name
git config --unset 取消某项配置 - git config --unset user.email

配置分3层:--system(系统级)→ --global(用户级)→ --local(仓库级)。后一层覆盖前一层。

常用一次性配置(新人必跑)

git config --global user.name "Your Name"
git config --global user.email "your@email.com"
git config --global init.defaultBranch main
git config --global color.ui auto
git config --global pull.rebase true
git config --global core.editor vim

二、仓库初始化与克隆

命令 功能 常用参数 示例
git init 初始化本地仓库 - git init
git init 在指定目录初始化 - git init my-project
git init --bare 初始化裸仓库(远程用) - git init --bare shared-repo.git
git clone 克隆远程仓库 - git clone git@github.com:user/repo.git
git clone 克隆到指定目录 - git clone my-folder
git clone -b 克隆指定分支 - git clone -b dev
git clone --depth 1 浅克隆(只拉最近1次) - git clone --depth 1
git clone --bare 克隆为裸仓库 - git clone --bare

一句话说清 initclone 的区别:init 是从零开始,本地已经有代码想用Git管理;clone 是复制远程仓库,拿别人的代码来用。

三、文件操作

命令 功能 常用参数 示例
git status 查看工作区状态 -s(简洁)
--short
git status
git add 添加文件到暂存区 - git add app.py
git add . 添加所有改动 - git add .
git add -A 添加所有改动(包括删除) - git add -A
git add -p 交互式添加(按块) - git add -p
git add -u 只添加已追踪文件的修改 - git add -u
git diff 查看工作区与暂存区差异 - git diff
git diff --staged 查看暂存区与最新commit差异 - git diff --staged
git diff 查看当前分支与目标分支差异 - git diff master
git rm 删除文件并暂存 - git rm app.py
git mv 重命名文件 - git mv old.py new.py
git restore 恢复文件到暂存区状态 - git restore app.py
git restore --staged 取消暂存 - git restore --staged app.py
git clean -fd 删除未追踪文件/目录 -f(强制)
-d(目录)
git clean -fd
gitignore 忽略文件(手动编辑.gitignore - 见下方说明

.gitignore 常用模板:

# Python
__pycache__/
*.pyc
.venv/
.env

# Ja va
*.class
*.jar
target/

# IDE
.idea/
.vscode/
*.iml

# OS
.DS_Store
Thumbs.db

# Node
node_modules/
npm-debug.log

# 自定义
logs/
*.log

四、提交与回退

命令 功能 常用参数 示例
git commit -m "msg" 提交暂存区 -m(消息) git commit -m "feat: add login"
git commit -am "msg" add + commit一起 -a(自动add已追踪) git commit -am "fix bug"
git commit --amend 修改最后一次commit - git commit --amend -m "new msg"
git commit --amend --no-edit 修改最后一次commit(不改消息) - 同上
git commit -v 提交时显示diff - git commit -v
git commit --allow-empty 允许空提交 - git commit --allow-empty -m "trigger CI"
git reset 取消暂存指定文件 - git reset app.py
git reset --soft HEAD~1 软重置(保留改动到暂存区) --soft git reset --soft HEAD~1
git reset --mixed HEAD~1 混合重置(默认,保留到工作区) --mixed git reset HEAD~1
git reset --hard HEAD~1 硬重置(丢弃所有改动) --hard git reset --hard HEAD~1
git reset --hard 硬重置到指定commit - git reset --hard abc1234
git revert 反转指定commit - git revert abc1234
git revert --no-edit 反转(不弹编辑器) - git revert --no-edit HEAD
git reflog 查看所有操作记录 - git reflog

resetrevert 的区别:reset 改写历史(危险操作),revert 创建反向commit(安全操作)。如果是已经push过的commit,用 revert

reset 三种模式速记:

--soft   ← HEAD位置改变,工作区和暂存区不动
--mixed  ← HEAD和暂存区改变,工作区不动(默认)
--hard   ← 全部改变(最危险)

五、历史查看

命令 功能 常用参数 示例
git log 查看提交历史 - git log
git log --oneline 简洁模式(每行1个commit) - git log --oneline
git log -n 5 只看最近5个 - git log -n 5
git log --graph 图形化显示分支 - git log --graph --oneline
git log --all 显示所有分支 - git log --all
git log --author="name" 按作者筛选 - git log --author="say_fall"
git log --since="2 days ago" 按时间筛选 - git log --since="2 days ago"
git log -p 显示完整diff - git log -p
git log --stat 显示改动统计 - git log --stat
git log -- 查看某文件的修改历史 - git log -- app.py
git log --grep="fix" 按commit message搜索 - git log --grep="fix"
git log -S "function" 按代码内容搜索 - git log -S "login"
git show 显示某次提交的详情 - git show abc1234
git show --stat 显示某次提交的改动统计 - git show abc1234 --stat
git blame 显示文件每行是谁改的 - git blame app.py
git shortlog 按作者聚合统计 - git shortlog -sn

推荐的 log 别名(后面有详细配置):

git log --graph --pretty=format:'%h -%d %s (%cr) <%an>' --abbrev-commit --all

六、分支操作

命令 功能 常用参数 示例
git branch 列出本地分支 - git branch
git branch -a 列出所有分支(含远程) - git branch -a
git branch -r 只列远程分支 - git branch -r
git branch -vv 显示分支跟踪信息 - git branch -vv
git branch 创建分支 - git branch dev
git branch -d 删除已合并分支 -d git branch -d dev
git branch -D 强制删除分支 -D git branch -D dev
git branch --merged 列出已合并分支 - git branch --merged
git branch --no-merged 列出未合并分支 - git branch --no-merged
git branch -m 重命名当前分支 - git branch -m main
git branch -u / 设置上游分支 - git branch -u origin/dev
git checkout 切换分支(旧语法) - git checkout dev
git checkout -b 创建并切换(旧语法) - git checkout -b dev
git switch 切换分支(新语法) - git switch dev
git switch -c 创建并切换(新语法) -c git switch -c dev
git switch -c origin/ 创建并跟踪远程分支 - git switch -c dev origin/dev
git merge 合并分支 - git merge dev
git merge --no-ff 非快进合并 --no-ff git merge --no-ff dev
git merge --squash 压缩合并 --squash git merge --squash dev
git merge --abort 取消合并 - git merge --abort
git rebase 变基到目标分支 - git rebase master
git rebase -i HEAD~3 交互式rebase -i git rebase -i HEAD~3
git rebase --continue 冲突解决后继续 - git rebase --continue
git rebase --abort 取消rebase - git rebase --abort
git rebase --skip 跳过当前commit - git rebase --skip

mergerebase 速记:

维度 merge rebase
历史 树状(merge commit) 线性
适用 共享分支 本地feature
危险度 高(改写历史)

七、暂存操作

命令 功能 常用参数 示例
git stash 暂存当前改动 - git stash
git stash push -m "msg" 暂存并加消息 -m git stash push -m "login 写到一半"
git stash -u 包括未追踪文件 -u git stash -u
git stash list 查看所有stash - git stash list
git stash pop 恢复并删除最新stash - git stash pop
git stash apply stash@{0} 恢复但不删除 - git stash apply stash@{0}
git stash drop stash@{0} 删除指定stash - git stash drop stash@{0}
git stash show stash@{0} 看stash的改动 - git stash show stash@{0}
git stash show -p stash@{0} 看stash的完整diff -p git stash show -p stash@{0}
git stash clear 清空所有stash - git stash clear
git stash branch 从stash创建分支 - git stash branch dev stash@{0}

stash本质是个栈结构(LIFO:后进先出)。stash@{0} 是最新的,stash@{1} 是上一个。

八、远程操作

命令 功能 常用参数 示例
git remote 列出远程仓库别名 - git remote
git remote -v 列出远程仓库URL - git remote -v
git remote add 添加远程仓库 - git remote add origin git@github.com:user/repo.git
git remote remove 删除远程仓库 - git remote remove origin
git remote rename 重命名远程 - git remote rename origin upstream
git remote set-url 修改远程URL - git remote set-url origin
git remote show 查看远程详情 - git remote show origin
git remote prune 清理已删除的远程跟踪分支 - git remote prune origin
git fetch 抓取远程更新(不合并) - git fetch origin
git fetch --all 抓取所有远程 - git fetch --all
git fetch -p 抓取并清理已删除远程分支 -p git fetch -p
git pull 抓取 + 合并(默认) - git pull
git pull 拉取指定分支 - git pull origin dev
git pull --rebase 拉取并rebase - git pull --rebase
git push 推送到上游分支 - git push
git push 推送到指定分支 - git push origin dev
git push -u 推送并设置上游 -u git push -u origin master
git push --all 推送所有分支 - git push --all
git push --tags 推送所有tag - git push --tags
git push --delete 删除远程分支 - git push origin --delete dev
git push --force 强制推送(危险) --force git push --force origin master
git push --force-with-lease 安全强制推送 --force-with-lease git push --force-with-lease origin master

fetchpull 速记:

命令 行为 何时用
fetch 只下载,不合并 想“先看看再合并”
pull fetch + merge 信任远程,直接同步

九、标签

命令 功能 常用参数 示例
git tag 列出所有tag - git tag
git tag -l "v1.*" 模糊搜索tag -l git tag -l "v1.*"
git tag v1.0.0 创建轻量tag - git tag v1.0.0
git tag -a v1.0.0 -m "msg" 创建附注tag(推荐) -a(annotated)
-m
git tag -a v1.0.0 -m "发布 1.0.0"
git tag -a v1.0.0 给历史commit打tag - git tag -a v1.0.0 abc1234
git show v1.0.0 查看tag详情 - git show v1.0.0
git push origin v1.0.0 推送单个tag - git push origin v1.0.0
git push origin --tags 推送所有tag --tags git push origin --tags
git tag -d v1.0.0 删除本地tag -d git tag -d v1.0.0
git push origin --delete v1.0.0 删除远程tag - git push origin --delete v1.0.0
git checkout v1.0.0 切到指定tag(detached HEAD) - git checkout v1.0.0

轻量tag只是个名字,附注tag包含打tag者的信息、日期和说明。发版推荐用附注tag。

十、企业级工具

10.1 git-flow(Git Flow 工具)

命令 功能 示例
git flow init 初始化Git Flow git flow init
git flow feature start 开始feature git flow feature start login
git flow feature finish 完成feature git flow feature finish login
git flow feature publish 发布feature到远程 git flow feature publish login
git flow feature pull 拉取远程feature git flow feature pull origin login
git flow release start 开始release git flow release start v1.0.0
git flow release finish 完成release git flow release finish v1.0.0
git flow hotfix start 开始hotfix git flow hotfix start pay-bug
git flow hotfix finish 完成hotfix git flow hotfix finish pay-bug

10.2 git worktree(多工作目录)

命令 功能 示例
git worktree add 添加工作目录 git worktree add ../feature-branch feature/x
git worktree list 列出所有工作目录 git worktree list
git worktree remove 删除工作目录 git worktree remove ../feature-branch
git worktree prune 清理无效工作目录 git worktree prune

10.3 git submodule(子模块)

命令 功能 示例
git submodule add 添加子模块 git submodule add libs/foo
git submodule init 初始化子模块 git submodule init
git submodule update 更新子模块 git submodule update --init --recursive
git submodule status 查看子模块状态 git submodule status

10.4 git archive(打包)

命令 功能 示例
git archive --format=zip HEAD > out.zip 打包当前版本 git archive --format=zip HEAD > release.zip
git archive --format=tar v1.0.0 打包指定tag git archive --format=tar v1.0.0 > v1.0.0.tar

10.5 git bisect(二分查找 bug)

命令 功能 示例
git bisect start 开始二分查找 git bisect start
git bisect bad 标记当前为坏版本 git bisect bad
git bisect good 标记某commit为好版本 git bisect good v1.0.0
git bisect reset 退出二分查找 git bisect reset

git bisect 是定位“哪个commit引入bug”的神器——用二分查找,比逐个commit试快100倍。

10.6 git grep(代码搜索)

命令 功能 示例
git grep "pattern" 在工作区搜索 git grep "TODO"
git grep -n "pattern" 显示行号 git grep -n "TODO"
git grep "pattern" HEAD~5 在指定commit搜索 git grep "function_name" v1.0.0

十一、效率别名(强烈推荐)

11.1 一键配置

下面这段直接复制到终端运行,配置就生效了:

# log 美化
git config --global alias.lg "log --graph --pretty=format:'%h -%d %s (%cr) <%an>' --abbrev-commit --all"

# 简洁 log
git config --global alias.l "log --oneline --graph -10"

# 全部 add + 状态
git config --global alias.st "status"

# 简洁 status
git config --global alias.ss "status -s"

# 全部 add
git config --global alias.a "add -A"

# 带信息的 commit
git config --global alias.cm "commit -m"

# 撤销最后一次 commit(保留改动)
git config --global alias.undo "reset --soft HEAD~1"

# 查看所有分支
git config --global alias.br "branch -a"

# 看远程
git config --global alias.rv "remote -v"

# diff 工具
git config --global alias.d "diff"
git config --global alias.dc "diff --cached"

11.2 别名效果

配好之后:

# 等价 git log --graph --pretty=format:'%h -%d %s (%cr) <%an>' --abbrev-commit --all
git lg

# 简洁 status
git ss

# 看所有分支
git br

# 撤销最后一次 commit(保留改动)
git undo

配置一次,终身受用。建议把上面那段命令保存到笔记里,新机器上直接复制粘贴。

11.3 更多推荐别名

# 推送到当前分支的上游
git config --global alias.ps "push"

# 拉取并 rebase
git config --global alias.pl "pull --rebase"

# 看所有 stash
git config --global alias.sl "stash list"

# 看 stashes 详情
git config --global alias.ss2 "stash show -p"

# 找到删除的文件
git config --global alias.df "diff --diff-filter=D --summary"

# 今天的 commit
git config --global alias.today "log --since=midnight --author=$(git config user.name) --oneline"

# 我上周的 commit
git config --global alias.week "log --since='1 week ago' --oneline"

十二、常用操作标准流程

12.1 第一次用Git(新人必跑)

# 1. 配置身份
git config --global user.name "Your Name"
git config --global user.email "your@email.com"

# 2. 配置默认分支
git config --global init.defaultBranch main

# 3. 配置编辑器
git config --global core.editor vim

# 4. 开启颜色
git config --global color.ui auto

# 5. (可选)配 SSH Key
ssh-keygen -t ed25519 -C "your@email.com"
cat ~/.ssh/id_ed25519.pub
# 复制到 Gitee/GitHub

12.2 新项目开发流程

# 1. clone 远程仓库
git clone git@github.com:user/repo.git
cd repo

# 2. 创建 feature 分支
git switch -c feature/awesome-feature

# 3. 开发 + 提交
echo "code" > app.py
git add .
git commit -m "feat: add awesome feature"

# 4. 推送到远程
git push -u origin feature/awesome-feature

# 5. 在平台创建 PR
# 6. 团队 review + 合并

12.3 同步远程最新代码

# 标准流程(推荐)
git fetch origin
git rebase origin/master  # 或 git merge origin/master

# 或一条命令(已配置 pull.rebase = true)
git pull --rebase

12.4 解决冲突

# 1. 冲突时先看哪些文件冲突
git status

# 2. 编辑冲突文件(删 <<<<<<< ======= >>>>>>>)

# 3. 标记解决
git add 

# 4. 完成合并/rebase
git commit                      # merge 时
git rebase --continue           # rebase 时

# 5. 验证
git status  # 不应该有 Unmerged paths

12.5 紧急修复 Bug

# 1. 创建 hotfix 分支
git switch -c hotfix/critical-bug

# 2. 修复 + 提交
echo "fix" > bug.py
git add .
git commit -m "hotfix: critical bug"

# 3. 推送
git push -u origin hotfix/critical-bug

# 4. 创建 PR + 快速 review
# 5. 合并到 master + 打 tag
git switch master
git merge --no-ff hotfix/critical-bug
git tag v1.0.1
git push origin v1.0.1

12.6 发版

# 1. 切到 master
git switch master

# 2. 拉取最新
git pull --rebase

# 3. 打 tag
git tag -a v1.0.0 -m "Release 1.0.0"

# 4. 推送 tag
git push origin v1.0.0

12.7 撤销操作

# 撤销工作区修改
git restore 

# 取消暂存
git restore --staged 

# 修改最后一次 commit 信息
git commit --amend

# 撤销最后一次 commit(保留改动)
git reset --soft HEAD~1

# 撤销最后一次 commit(丢弃改动)
git reset --hard HEAD~1

# 撤销已 push 的 commit
git revert 

12.8 找回"消失"的代码

# 1. 查所有操作记录
git reflog

# 2. 找回去
git reset --hard 

十三、命令数与场景对照表

"这么多命令,平时到底用多少?"

场景 必用命令(5个以内) 频率
日常开发 statusaddcommitpushpull ⭐⭐⭐⭐⭐
查看历史 logdiffshow ⭐⭐⭐⭐
分支开发 branchswitchmerge ⭐⭐⭐⭐
冲突解决 statusaddcommit ⭐⭐⭐
团队协作 remotefetchpull --rebase ⭐⭐⭐⭐
发版 tagpush --tags ⭐⭐
紧急修复 switch -c hotfix/mergetag ⭐⭐
事故回滚 revertresetreflog

日常工作90%只用16个核心命令。其他的是“进阶武器”,用到再查本手册。

十四、几个常见疑问

这么多命令怎么记?

分3层。

层级 数量 记忆方法
核心16个 16 每天用,自然记住
常用30个 30 反复查本手册
不常用50个 50+ 知道有,用到再查

核心16个(必背):

config, init, clone, status, add, commit,
log, diff, branch, switch, merge,
remote, fetch, pull, push, reflog

命令太长了不想打怎么办?

配别名。参考第11节,配一次终身受用。

哪个命令最容易出错?

reset --hardpush --forceclean -fd

这3个都是不可逆的操作。执行前先问自己三个问题:真的不需要了吗?有没有备份?reflog能找回来吗?

怎么查命令的详细帮助?

git helpman git

# 查某个命令的帮助
git help commit
# 或
git commit --help
# 或
man git-commit

# 查所有命令列表
git help -a

# 查常用工作流
git help workflows

命令记不住有没有图形化工具?

有,但不推荐。

工具 平台 说明
GitHub Desktop Windows/Mac 简单直观
Sourcetree Windows/Mac 功能强大
GitKraken 全平台 颜值高
VS Code - 内置Git集成
IntelliJ IDEA - JetBrains全家桶

但要注意:工具能“上手”但不能“深入”。想真正懂Git,还是得用命令行。

本文转载于:https://www.jb51.net/program/366906jwo.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注