type
Post
status
Published
date
Feb 1, 2026
slug
git-cheatsheet
summary
Git常用命令包括查看状态、提交历史、分支管理、远程操作、合并与变基、撤销操作及暂存等。
tags
Git
category
速查
icon
fa-brands fa-git-alt
password
基础与查看
git status —— 查看工作区修改状态。s:简略显示,看起来更清爽。
git show <SHA> —— 显示某个 Git 对象(提交、标签等)的详细信息。git log —— 查看提交历史。--oneline --graph:单行 + 图形化显示。
branchB..branchA:查看在 A 中但不在 B 中的提交。
-follow [file]:查看特定文件的提交历史(即使文件被重命名过也能追踪)。
git diff —— 查看代码差异。(不加参数):查看 工作区 vs 暂存区 的差异。
-staged:查看 暂存区 vs 版本库 的差异。
branchB...branchA:查看 A 和 B 分支内容的差异。
分支与标签
git branch —— 列出分支。av:列出所有分支(包含本地和远程),并显示详细信息。
d <name>:删除指定分支。
git checkout <target> —— 切换分支 或 恢复文件。b <new_branch>:创建并切换到新分支。
b <branch> origin/<branch>:基于远程分支创建并切换到本地分支。
<file>:丢弃工作区对该文件的修改。
git tag <tag_name> —— 给当前提交打上标签。提交
git add <files> —— 将修改添加到暂存区。p:交互式添加。可以一段一段代码地选择是否添加。
git commit —— 提交暂存区内容。m "msg":直接附带说明。
-amend:追加(修订)上一次提交。
远程操作
git remote —— 管理远程仓库。v:显示远程仓库的名称和 URL。
add <alias> <url>:添加一个新的远程仓库别名(如 origin)。
rm <alias>:删除远程仓库关联。
set-url <alias> <url>:修改远程仓库的 URL。
git fetch <alias> —— 从远程获取所有更新,但不合并到工作区。git pull —— 拉取远程代码并合并(fetch + merge)。git push <alias> <target> —— 推送到远程仓库。<branch>:推送指定分支(如origin master)。
<tag_name>:推送单个标签(如origin v1.0)。
-tags:一次性推送所有本地标签到远程。
f:强制推送(覆盖远程历史,慎用)。
合并与变基
git merge <branch> ——合并分支。-no-ff:禁用"快进"。强制生成 Merge Commit 节点。
-ff-only:仅允许快进合并(如果必须创建 Merge Commit 则报错并停止)。
git rebase <branch> ——变基(整理历史)。i:交互式变基。常用于 Squash(压缩)最近的几个提交。
git cherry-pick <commit_id>
将另一个分支的特定某次提交复制并合并到当前分支。撤销与暂存
git reset <target> —— 回退版本。-soft:软回退。撤销 Commit,保留代码在暂存区。
-hard:硬回退。撤销 Commit,丢弃所有修改。
-mixed:(默认) 撤销 Commit,保留代码在工作区。
git revert <commit_id> —— 反做。生成一个新的 Commit 来抵消指定的提交。git stash —— 暂存工作现场。pop:恢复最近一次暂存并删除记录。
list:列出所有暂存记录。
drop:删除最近一次暂存记录(不恢复)。
clear:清空所有暂存记录。aplstash@{n}:恢复指定的某次暂存。
.gitignore
#:注释。
!:取反(重新包含)。例如先忽略所有,再!src/。
/结尾:仅匹配文件夹(如node_modules/)。
- :匹配多个字符。
?:匹配单个字符。*:匹配多级目录(如sr/**build)。
指代符
. :代表当前目录下的所有文件(递归)。HEAD:代表当前版本(最新的那个 commit)。HEAD~n代表上n个版本(父提交)。同理:
HEAD~2 是上两个版本,HEAD^ 也常用来指代上一个版本。