搜索

首页  >  问答  >  正文

git设置分支关联后,为什么pull操作可以,push操作不可以?

问题背景:
本地仓库关联了多个远程仓库:

现在对本地分支pagesServe关联远程库coding的coding-pages分支:

切换到pagesServe分支时,执行git pull:

git自动从coding指定的远程库拉取代码。
现在修改本地代码,再执行git push:

没有成功,配置相同情况下,git pull能正常运行,但是git push不能,奇怪不?
按照上面的错误提示,重新push:

这里指定了远程库coding,执行本地分支为HEAD,远程分支为coding-pages才成功。但是git pull为什么不需要这些呢?再说我已经设置了pagesServe和coding远程库coding-pages分支的关联。

下面看下master分支:

同样是设置了远程库和远程分支关联,经过测试:git pull和git push命令都能正常运行,后面没有跟指定远程库和分支的多余参数:


都能正常运行,和pagesServe分支唯一的区别也就是master和远程分支master同名了,难道是因为pagesServe和远程分支不同命,即使配置了关联关系,在push操作时,git强制要求我们指定远程库和远程分支?

PHP中文网PHP中文网2787 天前635

全部回复(2)我来回复

  • 習慣沉默

    習慣沉默2017-05-02 09:36:32

    除非你的push.default的设置改掉,否则我相信是不行的:

    git config push.default upstream

    默认的配置应该是寻找同名的远程分支,所以会有你说的那个错误出现。

    之前有人问过和你类似的问题:How can I push a local Git branch to a remote with a different name easily?

    回复
    0
  • PHPz

    PHPz2017-05-02 09:36:32

    首次提交要完整输入git push origin 分支名

    回复
    0
  • 取消回复