github - 请教一个问题,关于 “git push 远程仓库名 本地分支:远程分支” 。

查看:754
本文介绍了github - 请教一个问题,关于 “git push 远程仓库名 本地分支:远程分支” 。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在网上一篇文章上看到,git push操作的完整命令是:

git push <远程主机名> <本地分支名>:<远程分支名>

文章的作者还说了,如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

$ git push origin master

上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。

我在本地新建仓库bendi,github上新建远程仓库origin,然后本地仓库push到远程。
没有设置set-upstream,并且第一次push的时候也没加-u参数,而是直接git push origin master。

问题:现在本地仓库bendi和远程仓库origin之间应该没有追踪关系把,为什么我还是可以通过git push origin master这种不带远程分支名的命令来push到远程呢?bendi和origin这2个仓库没有设置过追踪关系啊。

解决方案

这个应该不难解释。

如果你在当前文件夹中执行过 git remote add,命令应该是

git remote add origin https://github.com/yourName/yourRepo.git

一般都会这么打。。这样一来,origin 就指向你的远程库。你可以试试,把 origin 从那条命令中去掉,应该会报错。如果你是用 git clone 把远程库 clone 了下来,那么应该是会自动帮你设置好 origin 指向。

但是有一点你要注意。。到目前为止说的 origin 不是仓库名。。而是给远程仓库在本地起的一个别名。

对于你的情况,你说要github上新建远程仓库‘origin’,我有一点儿懵==!仓库名,一般不会叫 origin 。。比如你的项目叫 Angular-Table, 那么你需要做的就是 git remote add origin https://github.com/yourName/Angular-Table.git。这样一来,你就可以用 git push origin master 来推送更改了。

再说 branch 的事儿。git push origin master 意思就是,把你本地的 master branch 推送到远程 origin。如果写成 git push origin master:foo,意思就是把本地的 master branch 推送到远程的 foo branch。

顺便,这里引出一个黑科技。。比如我想删除远程的 foo branch, 命令就是: git push origin :foo

你可以通过 git branch 来查看本地有什么branch。也可以通过 git remote -v 来查看远程有什么 branch。顺便,git remote -v 可以查看 remote 信息,去试试吧

这篇关于github - 请教一个问题,关于 “git push 远程仓库名 本地分支:远程分支” 。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆