详情

首页手游攻略 Git本地分支和GitHub远程分支的关联问题实用指南

Git本地分支和GitHub远程分支的关联问题实用指南

佚名 2026-10-23 18:30:01

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Git本地分支和GitHub远程分支的关联问题”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

一、本地→远程

GitHub只有一个默认的master分支:

落到代码里,现在在本地新建一个kenny-feng分支,则要将该分支中的文件push到远程,如果直接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

结果:

每一个本地分支关联远程的一个分支,都会产生一个感知分支:

落到代码里,由此可知,本地仓库的master分支还没关联远程的master分支。kenny-feng分支是在push的时候设置关联

二、远程→本地

从实现思路看,在远程新建了一个dev分支(本地没有),要新建本地的dev分支同时关联远程的dev分支,有两种方法:

方法1:先pull下来(或用fetch),再新建并关联

step1:git pull origin dev

从实现思路看,将该分支拉取下来,则本地仓库会产生该分支的感知分支。如果是git pull,则拉取所有分支:

现在还没有dev分支:

step2:在本地新建dev分支同时将其和origin/master进行绑定,有两种方法:

(1)git checkout -b dev origin/dev

新建并切换到dev分支,同时关联origin/dev

(2)git checkout -b dev --track origin/dev

第一个dev为本地分支名,可改名,但建议和第二个dev保持一致

简写:git checkout --track origin/dev (省略本地分支名,新建后的分支名称将和最后的dev保持一致)

理解这一步时,若想新建同时关联,但不切换,则将两种方法前面的git checkout -b 改为git branch dev,后面不变

结果:

commitID一致,即关联成功

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

git pull origin dev1:dev2

(1)dev1为远程分支,dev2为本地分支,可同名

(2)git pull origin dev1:dev2 = git pull + git checkout -b dev2 origin/dev1

问题:master分支还没有关联,如下所示图:

切回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本地分支适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。

点击查看更多
推荐专题
热门阅读