Git 命令速查
共 57 条常用 Git 命令,按基础提交、分支操作、撤销回退、远程仓库、历史查看、暂存清理与 进阶场景分组,逐条给出命令与说明。支持搜索与分类筛选,点击命令即可复制。重点覆盖「改错了怎么退回去」与 「分支怎么合」两类高频问题。
基础与提交
仓库初始化、日常改动提交与同步。
| 命令 | 说明 |
|---|---|
| 在当前目录初始化一个新仓库 | |
| 克隆远程仓库到本地 | |
| 查看工作区与暂存区状态 | |
| 精简状态,一行一个文件 | |
| 把指定文件加入暂存区 | |
| 把当前目录所有改动加入暂存区 | |
| 交互式选择要暂存的代码片段 | |
| 提交暂存区内容并写提交信息 | |
| 修改最近一次提交(内容或信息) | |
| 拉取远程并合并到当前分支 | |
| 把本地提交推送到远程 |
分支操作
创建、切换、合并与删除分支。
| 命令 | 说明 |
|---|---|
| 列出本地分支(当前分支带 *) | |
| 列出本地与远程全部分支 | |
| 创建新分支(不切换) | |
| 切换到已有分支(新版推荐) | |
| 创建并切换到新分支 | |
| 旧写法:创建并切换分支 | |
| 把指定分支合并到当前分支 | |
| 把当前分支变基到目标分支(历史更线性) | |
| 删除已合并的分支 | |
| 强制删除分支(未合并也删) |
撤销与回退
按「改动是否已提交、是否已推送到远程」选择合适的方式。
| 命令 | 说明 |
|---|---|
| 丢弃工作区对某文件的修改 | |
| 把文件移出暂存区(保留改动) | |
| 撤销最近 1 次提交,改动留在暂存区 | |
| 撤销提交并取消暂存(改动留在工作区) | |
| 彻底回退到上一次提交(丢弃改动,慎用) | |
| 生成一个新提交来抵消指定提交(已推送时推荐) | |
| 把某文件恢复到指定提交版本 |
远程仓库
配置远程地址、拉取与推送。
| 命令 | 说明 |
|---|---|
| 查看远程仓库地址 | |
| 添加名为 origin 的远程仓库 | |
| 修改远程仓库地址 | |
| 拉取远程更新但不合并 | |
| 首次推送并建立追踪关系 | |
| 把本地标签推送到远程 | |
| 删除远程分支 |
查看历史与差异
排查改动、对比版本与定位问题。
| 命令 | 说明 |
|---|---|
| 单行显示提交历史 | |
| 图形化展示所有分支的历史 | |
| 查看某文件的历次改动内容 | |
| 查看工作区与暂存区的差异 | |
| 查看暂存区与最近提交的差异 | |
| 查看某次提交的具体改动 | |
| 逐行显示最后的修改者与提交 |
暂存与清理
临时保存未完成的改动,或清理未跟踪文件。
| 命令 | 说明 |
|---|---|
| 把当前改动暂存起来,工作区恢复干净 | |
| 连未跟踪的新文件一起暂存 | |
| 列出所有暂存记录 | |
| 恢复最近一次暂存并删除该记录 | |
| 恢复暂存但保留记录 | |
| 预演将删除哪些未跟踪文件 | |
| 删除未跟踪的文件与目录(慎用) |
标签与进阶
版本发布标签与常用进阶操作。
| 命令 | 说明 |
|---|---|
| 列出所有标签 | |
| 创建轻量标签 | |
| 创建带说明的附注标签 | |
| 切换到某标签对应的版本 | |
| 把某个提交单独摘到当前分支 | |
| 开始二分查找定位引入问题的提交 | |
| 设置命令别名,如把 status 简写为 st | |
| 初始化并更新子模块 |
使用说明
把常用 Git 命令按场景(基础提交、分支、撤销回退、远程、历史查看、暂存清理、进阶)整理成一张可搜索的速查表,逐条给出命令与说明,点击即可复制。重点覆盖「改错了怎么退回去」与「分支怎么合」。
- 在搜索框输入命令或用途(如 commit、撤销、分支、rebase、stash),表格实时筛选。
- 或点分类按钮只看某一类场景。
- 「撤销与回退」区分了「改动是否已提交、是否已推送到远程」,按情况选择 restore / reset / revert。
- 点击命令即可复制,替换其中尖括号里的占位内容后执行。
常见问题
- git reset 的 --soft、--mixed、--hard 有什么区别?
- --soft 只撤销提交,改动保留在暂存区;--mixed(默认)撤销提交并取消暂存,改动留在工作区;--hard 连工作区改动一起丢弃,慎用(未提交的内容无法恢复)。
- 已经 push 的提交改错了怎么办?
- 不要用 reset 改写已推送的历史,改用 git revert <commit> 生成一个反向提交来抵消,历史保持完整、对协作者友好。若确定只有自己用的分支,才可用 reset 后强推。
- merge 和 rebase 该怎么选?
- merge 保留完整分支历史,产生合并提交;rebase 把当前分支的提交挪到目标分支之后,历史更线性但会改写提交记录。团队协作的公共分支优先用 merge,个人分支整理提交时用 rebase。
- 如何临时保存没做完的改动?
- 用 git stash 把改动暂存起来、工作区恢复干净,切分支或拉取后再 git stash pop 恢复;加 -u 可连未跟踪的新文件一起暂存。