如何检出(切换到)远程 Git 分支
检出远程分支:git fetch 后 git checkout <分支名>——本地不存在时会自动基于 origin/<分支名> 创建同名本地分支并跟踪。老写法 git checkout -b <名> origin/<名>;只看代码不建分支用 git checkout origin/<名>。
现代 Git 直接 git checkout 分支名 就行:本地没有而远程(origin)恰好有同名分支时,Git 会自动创建本地分支并建立跟踪(DWIM 机制)。老版本或远程分支名与本地冲突时,用显式写法 git checkout -b 分支名 origin/分支名。
标准流程
git fetch # 先同步远程信息
git branch -r # 看看远程有哪些分支
git checkout feature-x # 自动从 origin/feature-x 建本地分支
# 等价显式写法
git checkout -b feature-x origin/feature-x
# 或新语法
git switch -c feature-x origin/feature-x
只想看代码、不建分支
git checkout origin/feature-x
进入游离 HEAD 状态,适合临时查看、跑一下测试。
远程分支名与本地已有分支冲突
git switch -c feature-x-review origin/feature-x # 用不同名字建本地分支
常见问题(FAQ)
Q:checkout 报 "pathspec did not match"?
① 先 git fetch(远程分支信息可能过时);② git branch -r 确认分支真存在;③ 有多个 remote 时指明:git checkout -b 名 upstream/名。
Q:检出后 pull/push 正常吗?
DWIM 方式建的本地分支自动跟踪 origin 的同名分支,git pull、git push 裸命令即可用。git branch -vv 可验证跟踪关系。
Q:有多个 remote 时自动检出会选哪个?
默认只查 origin。想从其他 remote(如 upstream)建分支,必须显式指定 origin 换成对应 remote 名。