Git:检出远程分支
最后更新
如果某个分支在远程仓库上存在、但你的电脑上还没有,要在上面工作,先运行 git fetch 让 Git 知道它的存在,再检出它。新版 Git 让这一步变得很简单:git switch <branch> 会自动创建一个本地分支,跟踪对应的 origin/<branch>。
在终端在线编辑器中试试这些命令:浏览器里就有一个真正的 shell,无需安装任何东西。
语法
| 命令 | 作用 |
|---|---|
git fetch origin | 下载远程仓库的分支 |
git switch feature | 创建跟踪 origin/feature 的本地分支 feature |
git checkout --track origin/feature | 跟踪远程分支的旧写法 |
git switch -c local origin/feature | 用另一个本地名称跟踪它 |
完整示例
把队友的分支拉到你的电脑上。
| 步骤 | 命令 | 结果 |
|---|---|---|
| 1 | git fetch origin | Git 知道了 origin/feature |
| 2 | git switch feature | 创建了本地分支 feature,跟踪远程分支 |
| 3 | git pull | 之后保持同步 |
Git 检出远程分支常见问题
如何检出远程分支?
先运行
git fetch origin,让 Git 知道远程仓库有哪些分支,然后运行 git switch <branch>。新版 Git 会找到对应的 origin/<branch>,并自动创建一个跟踪它的本地分支。在旧版 Git 中,使用 git checkout --track origin/<branch>。为什么 git switch 提示分支不存在?
通常是因为你还没有 fetch。只有当 Git 已经知道这个远程分支时,才能自动创建跟踪分支。先运行
git fetch origin(或 git fetch --all),然后 git switch <branch> 就能正常工作了。如何用不同的名字检出远程分支?
使用
git switch -c <localname> origin/<branch>(或 git checkout -b <localname> origin/<branch>)。这会用你选的名字创建一个跟踪该远程分支的本地分支,当远程分支名和已有的本地分支冲突时很有用。这里的 fetch 和 checkout 有什么区别?
git fetch 只会下载远程分支并更新你的远程跟踪引用,并不会给你一个可以工作的分支。检出(通过 git switch 或 git checkout)才会创建你真正在上面工作的本地分支。先 fetch 一次,再检出。可以在线练习吗?
可以。打开终端在线编辑器,就能在浏览器里真正的 shell 中运行这些命令,无需安装任何东西。Coddy 免费的互动式 Git 课程也会一步步讲解如何使用远程仓库。