位置:首页 > Shell > Git本地分支与GitHub远程分支关联设置方法

Git本地分支与GitHub远程分支关联设置方法

时间:2026-08-18  |  作者:骑光打字机  |  阅读:0

一、本地→远程

GitHub上默认只有一个master分支,这一点大家都清楚。

但如果我们在本地创建了一个新分支,比如叫kenny-feng,再想把这个本地分支的内容推送到远程,就不能直接按默认方式处理。

Git本地分支和GitHub远程分支的关联问题

如果直接执行git push,会收到报错:

The current branch kenny-feng has no upstream branch

(当前分支没有上流分支)

原因很简单:这个分支目前只存在于本地,远程仓库里还没有对应分支。

解决办法:给它设置一个上流分支,也就是关联远程分支。

常见有两种方式:

  • 方法1:git push -u origin kenny-feng
  • 方法2:git push --set-upstream origin kenny-feng

执行之后,效果如下:

Git本地分支和GitHub远程分支的关联问题

Git本地分支和GitHub远程分支的关联问题

需要注意的是,每一个本地分支在关联远程分支时,都会产生一个“感知分支”,也就是远程追踪分支:

Git本地分支和GitHub远程分支的关联问题

这时你会发现,本地仓库的master分支还没有关联远程的master分支

而kenny-feng分支,是在push的时候顺手完成了关联。

二、远程→本地

反过来,如果远程已经有了一个dev分支,但本地还没有,也可以在本地创建并完成关联。

常见有两种做法。

方法1:先pull下来,再创建并关联

第一步:执行git pull origin dev,把远程的dev分支拉下来。

如果直接用git pull,它会拉取所有分支,本地仓库里就会产生该分支的感知分支:

Git本地分支和GitHub远程分支的关联问题

但这时候,本地还没有真正的dev分支:

Git本地分支和GitHub远程分支的关联问题

第二步:在本地创建dev分支,并绑定到origin/dev。

有两种写法:

  • git checkout -b dev origin/dev —— 创建并切换到dev分支,同时关联origin/dev
  • git checkout -b dev --track origin/dev —— 同样创建并关联,且指定了跟踪关系

第一个dev是本地分支名,可以改。

不过建议和远程分支名保持一致。

简写版本是:git checkout --track origin/dev。省略本地分支名后,创建出的分支名称会自动与最后一个dev保持一致。

如果只想创建并关联,但不切换,可以把git checkout -b换成git branch dev,后面参数不变。

结果如下:

Git本地分支和GitHub远程分支的关联问题

commitID一致,说明关联成功。

方法2:pull的同时就创建并关联

一条命令即可完成:git pull origin dev1:dev2

  • dev1是远程分支,dev2是本地分支,可以同名
  • 这条命令等价于git pull 加上 git checkout -b dev2 origin/dev1

一个常见问题

master分支还没有关联时,情况会像下面这样:

Git本地分支和GitHub远程分支的关联问题

切回master,执行git push,会提示:

fatal: The current branch master has no upstream branch

解决思路:虽然一开始在本地创建了master分支,但从未push过,所以没有关联。

有人可能想通过合并origin/master来解决,但合并不等于关联。

也有人会尝试pull最新代码,但pull只会更新本地的origin/master,master和origin/master之间依然没有关联关系。

正确做法是通过push来设置上流分支:

Git本地分支和GitHub远程分支的关联问题

总结

本地分支与远程分支的关联,本质上就是建立一条“上游”指向。

  • 本地先有分支时,需要推送到远程并建立关联
  • 远程先有分支时,需要拉取到本地并建立关联

核心都是让本地分支知道,自己应该往哪个远程分支推送。

理解了这个逻辑,遇到类似提示就不会慌了。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多