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

 更新时间:2026年07月30日 14:24:14   作者:kenny.feng  
你在用Git推送本地新分支时是否遇到过“no upstream branch”报错?本文教你两种设置上流分支的方法,包括git push -u和--set-upstream,并详解如何从远程拉取分支并自动关联,帮你彻底解决本地分支与远程分支的关联问题,让协作更顺畅

一、本地→远程

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基础学习之分支操作的示例详解

    Git基础学习之分支操作的示例详解

    这篇文章主要为大家详细介绍了Git基础学习中分支的基本操作,文中的示例代码讲解详细,对我们了解Git有一定的帮助,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-10-10
  • 在地址栏里显示logo的实现方法

    在地址栏里显示logo的实现方法

    在地址栏里显示logo,其实大家可以看一些网站的头部里面,下面的方法讲的更仔细。
    2009-02-02
  • git丢弃本地修改的所有文件(新增、删除、修改)

    git丢弃本地修改的所有文件(新增、删除、修改)

    这篇文章主要介绍了git丢弃本地修改的所有文件(新增、删除、修改),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • git clone报错128怎么解决?凭据管理器添加方法亲测有效

    git clone报错128怎么解决?凭据管理器添加方法亲测有效

    你在git clone时是否遇到“did not exit cleanly (exit code 128)”报错?别浪费时间搜千篇一律的答案了!本文详细讲解如何通过Windows凭据管理器添加普通凭据,轻松解决因新Git限制导致的克隆失败问题,适用于Gitee、GitHub等平台,步骤清晰,亲测有效
    2026-07-07
  • VSCode报错:Vetur can't find 'tsconfig.json' or 'jsconfig.json'解决办法

    VSCode报错:Vetur can't find 'tsconfig.json' 

    最近在使用VScode打开项目时发现报错了,所以下面这篇文章主要给大家介绍了关于VSCode报错:Vetur can‘t find ‘tsconfig.json‘ or ‘jsconfig.json‘解决办法,需要的朋友可以参考下
    2022-08-08
  • Visual Studio 2022 集成 GIT 使用图文教程

    Visual Studio 2022 集成 GIT 使用图文教程

    本文详细介绍了VisualStudio2022与GIT集成的操作步骤,包括下载GIT、安装和配置GIT、以及如何在VisualStudio2022中下载GIT项目和上传项目到GIT服务器,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • VSCode自定义配色方案的实现

    VSCode自定义配色方案的实现

    这篇文章主要介绍了VSCode自定义配色方案的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • php/asp/asp.net中判断百度移动和PC蜘蛛的实现代码

    php/asp/asp.net中判断百度移动和PC蜘蛛的实现代码

    这篇文章主要介绍了php/asp/asp.net中判断百度移动和PC蜘蛛的实现代码,需要的朋友可以参考下
    2015-09-09
  • git add -A 和 git add . 的区别详解

    git add -A 和 git add . 的区别详解

    这篇文章主要介绍了git add -A 和 git add . 的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 音视频基本概念和FFmpeg的简单入门教程详解

    音视频基本概念和FFmpeg的简单入门教程详解

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换,这篇文章主要介绍了音视频基本概念和FFmpeg的简单入门,需要的朋友可以参考下
    2022-04-04

最新评论