GitHub和Composer。拉取存储库分支

9

Composer在我提供的JSON文件中的存储库中找不到我想要克隆的分支。我收到的错误消息是:

 [UnexpectedValueException]
 Could not parse version constraint development: Invalid version string "dev
 elopment"

我假设我不能说,去这个位置,从这个分支克隆?

{
    "repositories": [
        {
            "type":"package",
            "package": {
                "name": "AdamKyle/Aisis-Core",
                "version":"development",
                "source": {
                    "url": "https://github.com/AdamKyle/Aisis-Core.git",
                    "type": "git",
                    "reference":"development"
                }
            }
        }
    ],
    "require": {
        "AdamKyle/Aisis-Core": "development"
    }
}
2个回答

9

你刚才的语法有误。你需要告诉Composer使用一个分支,然后是分支名称。所以,不要写成:

"require": {
    "AdamKyle/Aisis-Core": "development"
}

假设你的分支叫做“development”,那么它应该是:
"require": {
    "AdamKyle/Aisis-Core": "dev-development as 2.0.0"
}

“as”后面的2.0.0是你的分支将被别名为的版本。这使得Composer可以将你的分支视为满足项目中对AdamKyle/Aisis-Core的任何其他要求,版本号为2.0.0。


嗨,Danack,假设“development”是我想要的分支。那么你的解决方案只会检出主分支。还有什么遗漏的吗? - ownking
可能。上面的语法确实检查了分支“development”,但是composer仍将从主分支(或者说默认分支)中获取composer.json。 - Danack

6

我自己也遇到了这个问题。我认为正确的方法是在源代码下引用分支,然后给它一个版本名称,比如dev-branch:

{
    "repositories": [
        {
            "type":"package",
            "package": {
                "name": "AdamKyle/Aisis-Core",
                "version":"dev-development",
                "source": {
                    "url": "https://github.com/AdamKyle/Aisis-Core.git",
                    "type": "git",
                    "reference":"development"
                }
            }
        }
    ],
    "require": {
        "AdamKyle/Aisis-Core": "dev-development"
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接