大家日常用 Git 做版本控制,命令多、容易忘。这篇文章把常用 Git 命令完整分类、纯中文说明,直接当手册用,新手也能快速上手。
一、仓库基础操作
创建、克隆仓库,是一切 Git 操作的起点。
| 命令 | 说明 |
|---|---|
| git init <目录> | 在指定目录创建空 Git 仓库;无参数则在当前目录创建 |
| git clone <仓库地址> | 克隆远程或本地仓库到本地,支持 HTTP/SSH 路径 |
二、用户配置
提交代码前必须配置身份,否则无法正常提交。
| 命令 | 说明 |
|---|---|
| git config user.name <名字> | 当前仓库配置用户名 |
| git config –global user.name <名字> | 全局配置用户名(所有仓库生效) |
| git config –global user.email <邮箱> | 全局配置用户邮箱 |
| git config –global alias.<别名> < 命令 > | 自定义 Git 命令别名,简化输入 |
| git config –system core.editor <编辑器> | 设置系统默认文本编辑器 |
| git config –global –edit | 打开并手动编辑全局配置文件 |
三、工作区、暂存区与提交
最常用的核心流程:修改 → 暂存 → 提交。
| 命令 | 说明 |
|---|---|
| git add <目录 / 文件> | 将文件或目录的修改加入暂存区 |
| git commit -m “提交信息” | 提交暂存区内容,附带说明 |
| git status | 查看文件状态:已暂存、未暂存、未跟踪 |
| git log | 查看完整提交历史记录 |
| git commit –amend -m “新信息” | 将当前暂存修改合并到上一次提交,并更新提交信息 |
四、差异对比
查看文件改了什么,是排查问题的常用操作。
| 命令 | 说明 |
|---|---|
| git diff | 对比工作区与暂存区的差异 |
| git diff HEAD | 对比工作区与最新提交的差异 |
| git diff –cached | 对比暂存区与最新提交的差异 |
五、撤销与重置
误操作、写坏代码时,用这些命令安全回滚。
| 命令 | 说明 |
|---|---|
| git revert <提交 ID> | 新建提交撤销指定提交,不破坏历史(安全) |
| git reset <文件> | 将文件移出暂存区,不修改工作区 |
| git reset | 清空暂存区,保留工作区修改 |
| git reset –hard | 清空暂存区并丢弃所有工作区修改(慎用) |
| git reset <提交 ID> | 回退到指定提交,保留工作区 |
| git reset <提交 ID> –hard | 强制回退到指定提交,清空所有后续修改 |
六、分支管理
分支是 Git 最强大的功能,支持并行开发。
| 命令 | 说明 |
|---|---|
| git branch | 查看本地所有分支 |
| git switch -c <分支名> | 创建并切换到新分支 |
| git switch <分支名> | 切换到已有分支 |
| git merge <分支名> | 将指定分支合并到当前分支 |
七、变基与历史查看
整理提交历史、找回丢失记录必备。
| 命令 | 说明 |
|---|---|
| git rebase <基准> | 将当前分支变基到目标节点,整理提交线 |
| git rebase -i <基准> | 交互式变基,可合并、修改、删除提交 |
| git reflog | 查看本地所有 HEAD 变更记录,可找回误删提交 |
八、远程仓库操作
与 GitHub/GitLab 等远程仓库同步代码。
| 命令 | 说明 |
|---|---|
| git remote add <别名> < 地址 > | 添加远程仓库,常用别名 origin |
| git fetch <远程> < 分支 > | 拉取远程分支到本地,不自动合并 |
| git pull <远程> | 拉取远程代码并合并到本地 |
| git pull –rebase <远程> | 拉取代码并以变基方式合并 |
| git push <远程> < 分支 > | 推送本地分支到远程,无则自动创建 |
| git push <远程> –force | 强制推送,会覆盖远程(严禁在公共分支使用) |
| git push <远程> –tags | 推送所有本地标签到远程 |
九、日志高级查看
快速筛选、定位提交,排查历史问题。
| 命令 | 说明 |
|---|---|
| git log -<数字> | 只显示最近 N 条提交 |
| git log –oneline | 每条提交精简为一行显示 |
| git log –author=”作者名” | 按作者筛选提交 |
| git log –grep=”关键词” | 按提交信息关键词筛选 |
| git log <起始>..< 结束 > | 查看指定范围的提交 |
| git log — <文件> | 只显示与指定文件相关的提交 |
| git log –graph |




