刚学 Git 的时候,很多人会遇到这种情况:在本地创建了一个新分支,写完代码想 push 到远程,结果系统报错提示没有关联远程分支。这时候别慌,其实只需要一条命令就能解决。
为什么会提示“没有关联远程分支”?
当你执行 git checkout -b feature/login 创建一个本地分支后,Git 并不知道这个分支要对应远程哪个分支。虽然你可以用 git push 推上去,但第一次推送时必须明确告诉 Git:这个本地分支要推到远程的哪个名字的分支,并建立跟踪关系。
用 --set-upstream 一次性关联
最直接的方式是在第一次推送时加上 --set-upstream 参数:
git push --set-upstream origin feature/login
这条命令的意思是:把当前本地分支推送到远程 origin 的 feature/login 分支,同时建立关联。之后你再执行 git push 或 git pull 就不用加参数了,Git 自动知道去哪同步。
简写形式更省事
嫌上面那串太长?可以用缩写:
git push -u origin feature/login
这里的 -u 就是 --set-upstream 的简写。很多团队都习惯这么做,尤其是刚切完分支就想立刻推上去备份的时候。
已经推过一次,怎么补救?
如果你之前已经用 git push origin feature/login 把代码推上去了,但忘了加 -u,也没关系。进入该分支后运行下面这句就行:
git branch --set-upstream-to=origin/feature/login
这样本地分支就和远程建立了跟踪关系,后续操作就顺畅了。
查看当前分支是否已关联
不确定有没有关联成功?可以运行:
git status
如果看到类似 “Your branch is up to date with 'origin/feature/login'” 的提示,说明已经关联上了。如果是 “has no upstream branch”,那就还没关联。
平时开发中,特别是在协作项目里,分支关联是个小细节,但处理不好容易卡住流程。记住 -u 这个参数,能帮你少打几次命令,也避免来回查文档。