5.基本操作
Git 的工作就是创建和保存项目的快照及与之后的快照进行对比。
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。

一、核心命令
| 命令 |
说明 |
git clone |
克隆远程仓库到本地 |
git push |
推送本地提交到远程仓库 |
git add |
将工作区修改添加到暂存区 |
git commit |
将暂存区内容提交到本地仓库 |
git checkout |
切换分支或恢复工作区文件 |
git pull |
拉取远程更新并合并到当前分支 |
二、创建仓库
| 命令 |
说明 |
git init |
在当前目录初始化一个新的 Git 仓库 |
git clone <repo> |
克隆远程仓库到本地 |
三、提交与修改
| 命令 |
说明 |
git add <file> |
将文件添加到暂存区 |
git status |
查看仓库当前状态(已修改、已暂存、未跟踪等) |
git diff |
比较工作区与暂存区的差异 |
git difftool |
使用外部工具查看差异 |
git range-diff |
比较两个提交范围之间的差异 |
git commit -m "msg" |
将暂存区内容提交到本地仓库 |
git reset |
回退版本(可重置暂存区或工作区) |
git rm |
删除工作区文件并移除出暂存区 |
git mv |
移动或重命名工作区文件 |
git notes |
为提交添加或查看注释 |
git checkout |
切换分支或恢复工作区文件 |
git switch |
专门用于切换分支(更清晰) |
git restore |
恢复或撤销工作区/暂存区更改 |
git show |
显示 Git 对象的详细信息(如提交、标签) |
四、提交日志
| 命令 |
说明 |
git log |
查看提交历史 |
git blame <file> |
以列表形式显示文件的每一行是谁在何时修改的 |
git shortlog |
按作者分组生成简洁的提交日志摘要 |
git describe |
基于最近的标签生成一个可读的字符串描述当前提交 |
五、远程操作
| 命令 |
说明 |
git remote |
管理远程仓库(添加、删除、重命名等) |
git fetch |
从远程获取代码但不合并 |
git pull |
拉取远程代码并合并到当前分支 |
git push |
推送本地提交到远程仓库 |
git submodule |
管理包含其他 Git 仓库的子模块 |
六、文件状态
1. 工作区 (Working Directory)
- 实际操作文件的地方。
- 文件状态:未跟踪 (Untracked) 或 已修改 (Modified)。
2. 暂存区 (Staging Area / Index)
- 位于
.git/index,临时存放准备提交的内容。
- 文件状态:已暂存 (Staged)。
3. 本地仓库 (Local Repository)
- 位于
.git 目录,存储所有提交历史。
- 文件状态:已提交 (Committed) 后回到已跟踪状态。
状态转换流程
| 步骤 |
命令 |
状态变化 |
| 创建新文件 |
touch newfile.txt |
未跟踪 (Untracked) |
| 添加到暂存区 |
git add newfile.txt |
未跟踪 → 已跟踪 (Tracked) |
| 修改已跟踪文件 |
echo "hi" > newfile.txt |
已跟踪 → 已修改 (Modified) |
| 将修改添加到暂存区 |
git add newfile.txt |
已修改 → 已暂存 (Staged) |
| 提交到本地仓库 |
git commit -m "msg" |
已暂存 → 已提交 (Committed) |
使用 git status 随时查看当前文件状态。
七、实例
git init
git add .
git commit -m "Initial commit"
八、Git 2.23+ 新命令