你在公司写代码,刚接手一个项目,同事让你在本地改点东西。你克隆了仓库,新建了个分支开始干活,改完一提交,想推到远程,结果报错:fatal: The current branch feature/login has no upstream branch. 这时候你就明白了——本地分支还没跟远程关联上。
啥叫“把本地分支关联远程”
简单说,就是让你本地的某个分支(比如 feature/user)和远程仓库的对应分支(比如 origin/feature/user)连上线。这样每次 git push 或 git pull 的时候,Git 才知道该往哪儿推、从哪儿拉。
最常用的关联方法
你写完代码,第一次要推上去,可以直接用带参数的 push 命令:
git push -u origin feature/login
这里的 -u 参数特别关键,它等于 --set-upstream,意思是“这次推完,顺便把本地分支跟远程分支绑上”。下次再 push 或 pull,直接敲 git push 就行,不用指定分支名了。
已经推过了?也可以手动关联
有时候你可能已经推过一次,但忘了加 -u,这时候可以手动设置上游分支:
git branch --set-upstream-to=origin/feature/login feature/login
这句的意思是:让本地的 feature/login 跟远程的 origin/feature/login 关联。之后拉取代码就方便多了。
偷懒小技巧:改完自动同步
很多人习惯每次 push 都写全命令,其实没必要。只要第一次用 -u 推过,后续在同一分支下,直接:
git push
或者:
git pull
Git 自动知道去哪同步。就像你家路由器配好 Wi-Fi 密码后,手机进屋就自动连,不用每次都输一遍。
常见错误提醒
如果你输错了远程分支名,比如写成 origin/feat/login,但实际远程没有这个分支,Git 会报错。解决办法是先确认远程分支是否存在:
git fetch然后看一眼都有啥分支:git branch -r选对名字再关联。
还有一种情况:你想关联的远程分支还没创建。那也没事,直接用 git push -u origin feature/login,Git 会帮你自动创建远程分支并绑定关系,省得你去网页上点来点去。