32人参与 • 2026-07-30 • 其他编程
github只有一个默认的master分支:

现在在本地创建一个kenny-feng分支,则要将该分支中的文件push到远程,如果直接push,则报错:
the current branch kenny-feng has no upstream branch(当前分支没有上流分支)
原因:因为该分支只在本地有,远程还没有
解决:设置上流分支,有两种方法:
结果:


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

由此可知,本地仓库的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来设置上流分支:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论