通过composer安装:功能分支结帐时多个git遥控器和pathspec错误

时间:2017-03-14 16:42:56

标签: php git composer-php

我正在使用composer和链接的git存储库安装我们的PHP应用程序。安装后,克隆的存储库配置了两个git遥控器,“composer”和“origin”。

composer.json

"require": {
    [...]    
  "mycompany/myrepository":       "dev-master",
}, 
[...]
  "repositories": [
{
  "type": "vcs",
  "url":  "git@bitbucket.org:mycompany/myrepository.git"
},

在作曲家完成安装之后:

$> git remote show
composer
origin

当我想切换到存储库上的任何可用功能分支时,它会因git错误而失败。

$> git fetch && git checkout branchname 
error: pathspec 'branchname' did not match any file(s) known to git.

当我删除git remote'composer'时,它工作正常,但效率不高。

$> git remote rm composer

我的composer.json或我希望实现的方式可能有什么问题?

编辑: composer.json当时是基于https://getcomposer.org/doc/01-basic-usage.md创建的 - 如果我重新开始并且只需要一个模块,没有依赖项等,然后执行compser create-project,结果是相同的:两个遥控器“作曲家”和“原点”可供选择。

更新: 我尝试使用基于作曲家文档的单个git public repo monolog / monolog做同样的事情,并且它导致了同样的两个遥控器。

从头开始测试:

{
  "require": {
    "monolog/monolog":       "dev-master"
  },

  "require-dev": {
  },

  "repositories": [

    {
      "type": "vcs",
      "url": "https://github.com/Seldaek/monolog"
    }
  ]
}

$ composer create-project
$ cd vendor/monolog/monolog
$ git remote show
composer
origin

1 个答案:

答案 0 :(得分:1)

运行git branch -a以查看您拥有的分支机构。

应该看起来像

* master
remotes/origin/master
remotes/origin/branchname
remotes/composer/master

如果没有本地分支branchname,您可以

git fetch origin
git checkout --track origin/branchname

branchname跟踪origin