文章目录
- 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
更加直观,推荐在分支管理中使用它。