当一对一直播系统源码使用 git checkout -b 本地分支名 origin/某个已存在的远程分支名
去新建本地分支时,会以这个已存在的远程分支(工作中一般是develop分支)为源创建本地分支
然后我们吭呲吭呲写代码,写完了一个小功能,要提交代码了,发现 git push
报错了 fatal: The upstream branch of your current branch does not match the name of your current branch.
这是为什么呢?
这是因为本地分支与远程分支还没建立联系,甚至本地分支所对应的远程分支都没有在远程仓库中建立,以本地 feature-xxoo 分支为例,这是我通过 git checkout -b feature-xxoo origin/develop
所建立的本地分支,并以远程 develop 分支为源,但是此时远程仓库中还没有一个叫 feature-xxoo 的分支,需要建立联系!!!
怎么建立联系?
我们先来了解一下git拉取推送的指令,顺序遵循 <来源地>:<目的地>
$ git pull <远程主机名> <远程分支>:<本地分支>
$ git push <远程主机名> <本地分支>:<远程分支>
如果省略远程分支名,表示将本地分支推送至与其存在“追踪关系”的远程分支(一般两者是同名的),若该远程分支不存在,则会新建一个同名的远程分支
$ git push <远程主机名> <本地分支>
所以,接下来按照下面的步骤:
1. 新建一个与本地分支同名的远程分支
通过 git push origin feature-xxoo
指令,因为远程没有 feature-xxoo 分支,则新建一个叫 feature-xxoo 的远程分支,以后就在这上面推送写完的一对一直播系统源码,并不直接推送至 develop 分支
但此时并不能直接 git push
推送代码,每次提交还是得用 git push origin feature-xxoo
,但太麻烦了,如何才能直接使用 git push
推送代码呢?答案是建议追踪关系并指定默认主机
2. 建立追踪关系并指定默认主机
此时需要建立本地 feature-xxoo 分支与远程 feature-xxoo 分支的联系了,使用 git push -u origin feature-xxoo
指令(-u
是为了指定一个默认主机,这样后面就不需要再加任何参数,直接 git push
即可提交),出现 set up to track remote
说明已经建立追踪关系
注意,千万不要省略本地分支,因为这相当于推送了一个空的本地分支到远程分支,远程分支会被删掉
git push origin :<远程分支>
相当于
git push origin --delete <远程分支>
若当前本地分支与远程分支确定存在追踪关系,就可以把本地分支与远程分支都省略
git push origin
// 如果当前本地分支只有一个追踪分支,那么主机名都可以省略
git push
// 如果当前本地分支与多个主机存在追踪关系,可以使用 -u 指定一个默认主机
git push -u origin feature-xxoo // 将本地feature-xxoo分支推送至origin主机,同时指定origin为默认主机
还有一个办法,就是你在建立完本地分支后,就养成习惯立马执行git push --set-upstream origin sp/ioc-bigscreen
,将远程sp/ioc-bigscreen分支与本地sp/ioc-bigscreen分支相关联,之后直接git push
即可,这样就能实现一对一直播系统源码的远程推送了。
声明:本文由云豹科技转发自Jesse90s博客,如有侵权请联系作者删除