文章目录
- git `switch` 命令详解与实用示例
- `git switch` vs `git checkout`
- `git switch` 用法
- 1. 切换到已有分支
- 2. 创建并切换到新分支
- 3. 切换到上一个分支
- 4. 切换到远程分支(自动创建本地分支并追踪远程)
- 5. 放弃未提交的修改并切换分支
- 总结
git switch 命令详解与实用示例
git switch 是 Git 2.23 版本(2019 年发布)引入的一个命令,用于切换分支。它的作用类似于 git checkout,但更加专注于分支管理,使 Git 操作更清晰易懂。
git switch vs git checkout
在 Git 2.23 之前,git checkout 既用于切换分支,也用于检出文件,这容易导致混淆。例如:
git checkout branch-name切换分支git checkout -- file.txt丢弃文件的修改
为了解决这个问题,Git 引入了 git switch(用于切换分支)和 git restore(用于恢复文件),使命令更加直观。
git switch 用法
1. 切换到已有分支
git switch branch-name
等价于:
git checkout branch-name
示例:
git switch feature-login
切换到 feature-login 分支。
2. 创建并切换到新分支
git switch -c new-branch-name
等价于:
git checkout -b new-branch-name
示例:
git switch -c dev
创建并切换到 dev 分支。
3. 切换到上一个分支
git switch -
等价于:
git checkout -
示例:
git switch -
如果你从 main 切换到了 feature-x,执行该命令后会切回 main。
4. 切换到远程分支(自动创建本地分支并追踪远程)
git switch -c local-branch-name origin/remote-branch-name
示例:
git switch -c feature-y origin/feature-y
这会基于远程 feature-y 分支创建并切换到本地 feature-y 分支。
5. 放弃未提交的修改并切换分支
如果当前分支有未提交的修改,Git 会阻止切换。你可以使用 -f 强制切换:
git switch -f branch-name
或者先用 git stash 暂存修改:
git stash
git switch branch-name
git stash pop
总结
| 命令 | 作用 |
|---|---|
git switch branch-name | 切换到已有分支 |
git switch -c new-branch | 创建并切换到新分支 |
git switch - | 切换到上一个分支 |
git switch -c local-branch origin/remote-branch | 基于远程分支创建并切换到本地分支 |
git switch -f branch-name | 放弃修改并强制切换分支 |
相比 git checkout,git switch 更加直观,推荐在分支管理中使用它。



















