一、先看你的仓库长什么样
bash
git branch -r
# remotes/vela/dev
# remotes/vela/master
# remotes/vela/miwear-main
# ...
这个格式是:
remotes/<远程仓库名>/<分支名>
- remotes = Git 存放远程分支信息的目录(不用管,知道就行)
- vela = 你的远程仓库名(用
git remote -v查看) - dev = 分支名
二、切分支的两种命令
旧版:git checkout(功能多但语义模糊)
bash
git checkout dev # 切到远程分支,自动创建本地分支
git checkout -b dev origin/vela/dev # 显式创建本地分支并跟踪
新版:git switch(语义清晰,推荐)
bash
git switch dev # 切到远程分支,自动创建本地分支
git switch -c dev origin/vela/dev # 显式创建本地分支并跟踪
| 命令 | 用途 | 推荐度 |
|---|---|---|
git checkout |
旧命令,功能多(能切分支、恢复文件、创建分支) | ⭐⭐ |
git switch |
新命令,专门切分支,语义清晰 | ⭐⭐⭐ |
三、什么时候必须加远程名?
| 场景 | 写法 |
|---|---|
| 一个远程仓库 | git switch dev 就够了 |
| 多个远程仓库,分支名冲突 | 必须加远程名区分 |
例子:
你有两个远程:vela 和 upstream,都有 dev 分支:
remotes/vela/dev
remotes/upstream/dev
这时必须写清楚:
bash
git switch vela/dev # 切到 vela 的 dev
git switch upstream/dev # 切到 upstream 的 dev
四、总结
- remotes 是 Git 存放远程分支信息的目录,不用管它
- 推荐用
git switch代替git checkout,语义更清晰 - 切分支时,直接写分支名就行 (如
git switch dev) - 只有多个远程有同名分支时,才需要加远程名(如
git switch vela/dev) - 用
git remote -v查看你的远程仓库叫什么名字
五、快速参考
| 目的 | 旧命令 | 新命令(推荐) |
|---|---|---|
| 查看远程分支 | git branch -r |
git branch -r |
| 查看远程仓库名 | git remote -v |
git remote -v |
| 切换分支 | git checkout dev |
git switch dev |
| 显式创建并切换 | git checkout -b dev origin/vela/dev |
git switch -c dev origin/vela/dev |
| 从当前分支创建新分支 | git checkout -b feature |
git switch -c feature |