Git Cheatsheet

Git 命令速查手册,按场景分类快速查找。

初始化与配置

git init

在当前目录初始化新的 Git 仓库

git clone <url>

克隆远程仓库到本地

git clone <url> <dir>

克隆远程仓库到指定目录

git config --global user.name "名字"

设置全局用户名

git config --global user.email "邮箱"

设置全局邮箱

git config --list

查看所有配置信息

git config --global alias.co checkout

设置命令别名

基本操作

git status

查看工作区和暂存区状态

git add <file>

将文件添加到暂存区

git add .

将所有修改添加到暂存区

git add -p

交互式选择要暂存的修改

git commit -m "消息"

提交暂存区的修改

git commit -am "消息"

添加并提交已跟踪文件的修改

git commit --amend

修改最近一次提交

git commit --amend --no-edit

修改最近一次提交但不修改消息

分支管理

git branch

列出本地分支

git branch -a

列出所有分支(含远程)

git branch <name>

创建新分支

git branch -d <name>

删除已合并的分支

git branch -D <name>

强制删除分支

git checkout <branch>

切换到指定分支

git checkout -b <name>

创建并切换到新分支

git switch <branch>

切换分支(新命令)

git switch -c <name>

创建并切换到新分支(新命令)

git merge <branch>

将指定分支合并到当前分支

git merge --no-ff <branch>

非快进方式合并(保留合并记录)

git rebase <branch>

变基:将当前分支变基到目标分支

git rebase -i <commit>

交互式变基

远程操作

git remote -v

查看远程仓库信息

git remote add origin <url>

添加远程仓库

git remote set-url origin <url>

修改远程仓库 URL

git fetch

从远程获取最新信息(不合并)

git fetch --all

获取所有远程仓库的最新信息

git pull

拉取远程更新并合并

git pull --rebase

拉取远程更新并变基

git push

推送本地提交到远程

git push -u origin <branch>

推送并设置上游分支

git push origin --delete <branch>

删除远程分支

git push --force

强制推送(谨慎使用)

查看历史

git log

查看提交历史

git log --oneline

简洁模式查看提交历史

git log --graph --oneline

图形化查看分支合并历史

git log -n <num>

查看最近 N 条提交

git log --author="名字"

按作者筛选提交

git log --since="2 weeks ago"

按时间筛选提交

git log -p <file>

查看指定文件的提交历史和差异

git blame <file>

查看文件每行的最后修改信息

git diff

查看工作区和暂存区的差异

git diff --staged

查看暂存区和上次提交的差异

git diff <branch1> <branch2>

查看两个分支的差异

git show <commit>

查看某次提交的详细信息

撤销与回退

git restore <file>

撤销工作区修改(新命令)

git restore --staged <file>

取消暂存(新命令)

git checkout -- <file>

撤销工作区修改(旧命令)

git reset HEAD <file>

取消暂存(旧命令)

git reset --soft <commit>

回退到指定提交,保留修改在暂存区

git reset --mixed <commit>

回退到指定提交,保留修改在工作区

git reset --hard <commit>

回退到指定提交,丢弃所有修改

git revert <commit>

创建新提交来撤销指定提交

git revert -n <commit>

撤销但不自动提交

git clean -fd

删除未跟踪的文件和目录

git clean -fdn

预览将删除的未跟踪文件

暂存与储藏

git stash

暂存当前修改

git stash save "描述"

暂存并添加描述

git stash list

查看所有暂存

git stash pop

恢复最近一次暂存并删除

git stash apply

恢复最近一次暂存但不删除

git stash apply stash@{n}

恢复指定暂存

git stash drop stash@{n}

删除指定暂存

git stash clear

删除所有暂存

git stash branch <name>

基于暂存创建新分支

标签管理

git tag

列出所有标签

git tag <name>

创建轻量标签

git tag -a <name> -m "消息"

创建附注标签

git tag <name> <commit>

给指定提交打标签

git tag -d <name>

删除本地标签

git push origin <tag>

推送标签到远程

git push origin --tags

推送所有标签到远程

git push origin --delete tag <name>

删除远程标签

高级操作

git cherry-pick <commit>

将指定提交应用到当前分支

git cherry-pick <c1>..<c2>

将多个提交应用到当前分支

git reflog

查看所有操作记录(可用于恢复丢失提交)

git bisect start

启动二分查找定位 Bug

git bisect good <commit>

标记正常提交

git bisect bad <commit>

标记问题提交

git worktree add <dir> <branch>

创建工作树(多分支同时工作)

git submodule add <url>

添加子模块

git submodule update --init

初始化并更新子模块

使用说明

命令分类

本速查手册按使用场景将 Git 命令分为九大类:初始化与配置、基本操作、分支管理、远程操作、查看历史、撤销与回退、暂存与储藏、标签管理、高级操作,方便按场景快速定位

搜索功能

顶部搜索框支持按命令文本或描述进行模糊匹配(基于 Fuse.js),输入关键词后会自动在所有分类中筛选包含匹配命令的分类,未匹配到命令的分类会被隐藏

复制命令

鼠标悬停在命令行上时右侧会出现复制按钮,点击即可复制完整命令到剪贴板,复制成功后会在右上角弹出提示。命令中带尖括号的占位符(如 <file>、<url>)需要替换为实际值后使用