### 常用命令

#### 一、分支管理

| 操作                 | 命令                                   | 说明                         |
| -------------------- | -------------------------------------- | ---------------------------- |
| 查看本地分支         | `git branch`                           | 显示所有本地分支             |
| 查看远程分支         | `git branch -r`                        | 显示远程分支                 |
| 创建新分支           | `git checkout -b feature/xxx`          | 基于当前分支创建并切换新分支 |
| 基于远程创建本地分支 | `git checkout -b dev origin/dev`       | 跟踪远程分支创建             |
| 删除本地分支         | `git branch -d feature/xxx`            | 删除（已合并）本地分支       |
| 删除远程分支         | `git push origin --delete feature/xxx` | 删除远程分支                 |
| 重命名分支           | `git branch -m old new`                | 修改分支名                   |

#### 二、提交相关

| 操作               | 命令                            | 说明                                       |
| ------------------ | ------------------------------- | ------------------------------------------ |
| 添加到暂存区       | `git add .` 或 `git add <file>` | 添加改动文件                               |
| 提交代码           | `git commit`                    | 使用文本编辑器编写提交信息后提交           |
| 提交代码           | `git commit -m "描述信息"`      | 提交到本地仓库，可使用多个`-m`提交多行信息 |
| 修改上一次提交信息 | `git commit --amend`            | 用于补充或改描述                           |
| 查看提交历史       | `git log --oneline`             | 简洁模式显示历史                           |

#### 三、远程操作

| 操作             | 命令                                                      | 说明                |
| ---------------- | --------------------------------------------------------- | ------------------- |
| 克隆仓库         | `git clone <url>`                                         | 拉取远程项目        |
| 拉取远程代码     | `git pull`                                                | 获取并合并远程分支  |
| 推送代码         | `git push`                                                | 推送当前分支到远程  |
| 推送并设置上游   | `git push -u origin <branch>`                             | 建立跟踪关系        |
| 查看远程地址     | `git remote -v`                                           | 显示远程仓库地址    |
| 远程查询所有标签 | git ls-remote --tags https://github.com/xxx.git \| grep X | 查看X相关的所有标签 |

#### 四、合并与变基

| 操作           | 命令                                 | 说明                            |
| -------------- | ------------------------------------ | ------------------------------- |
| 合并分支       | `git merge feature/xxx`              | 把目标分支合并进当前分支        |
| 取消合并       | `git merge --abort`                  | 终止合并,直接回退到合并前的状态 |
| 变基（rebase） | `git rebase dev`                     | 让你的提交在最新 `dev` 上       |
| 解决冲突后继续 | `git add . && git rebase --continue` | 继续变基或合并流程              |

#### 五、查看状态和差异

| 操作             | 命令                | 说明                         |
| ---------------- | ------------------- | ---------------------------- |
| 查看状态         | `git status`        | 当前分支、暂存区、工作区状态 |
| 查看修改内容     | `git diff`          | 查看未暂存的更改             |
| 查看暂存内容差异 | `git diff --cached` | 查看已 add 的更改            |

#### 六、撤销操作

| 操作                    | 命令                      | 说明                 |
| ----------------------- | ------------------------- | -------------------- |
| 撤销 add                | `git reset <file>`        | 把文件移出暂存区     |
| 撤销 commit（保留修改） | `git reset --soft HEAD~1` | 撤销最近一次提交     |
| 丢弃修改                | `git checkout -- <file>`  | 丢弃对文件的本地更改 |
| 丢弃所有工作区修改      | `git reset --hard`        | 恢复到最后一次提交   |

#### 七、其他常用

| 操作                   | 命令                                                         | 说明 |
| ---------------------- | ------------------------------------------------------------ | ---- |
| 查看当前分支           | `git branch --show-current` 或 `git rev-parse --abbrev-ref HEAD` |      |
| 查看某次提交内容       | `git show <commit-id>`                                       |      |
| 切换到上一个分支       | `git checkout -`                                             |      |
| 清理无效引用           | `git remote prune origin`                                    |      |
| 从远程仓库获取所有标签 | `git fetch origin --tags`                                    |      |