我遇到的问题是 Composer将私有(private)包设置为无分支 (HEAD
),并且仅发生在具有标签的包上。
当我在 Composer 中需要一个私有(private)存储库时,它如下所示:
"require": {
...
"vendorname/testbundle": "1.0.5"
},
"repositories": [
{ "type": "git", "url": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a4c3cdd0e4c6cdd0c6d1c7cfc1d08ad2c1cac0cbd6cac5c9c1" rel="noreferrer noopener nofollow">[email protected]</a>/testbundle.git" },
],
我发现这实际上是 Composer 的预期行为,但是有没有办法强制它设置为 master
分支?
已更新
我认为我目前的想法有点偏离原来的问题,但我是一个初学者,我不确定我是否完全理解 Composer 的行为。
所以,场景是:
我开发了一个包(比如 DemoPackage)并创建了一个 dev 和 master 分支。开发人员将保留新功能,当它们稳定时,我会将它们 merge 到主版本和标记中,以标记某些更改。几个月后,我决定完全重写该包,因此我将从 master 分支中的最新提交创建一个新分支 v1,并开始在 dev 中开发 v2。但又过了几个月,我发现我需要为 v1 分支开发一个新功能,我不明白的是,如果我要向 v1 分支添加一个新标签,如果它不在 master 中, Composer 会找到它吗?分支?
我遵循的流程可以吗?
最佳答案
php composer.phar require vendorname/testbundle:dev-master
what I don't understand is if I'm going to add a new tag to branch v1 would composer find it if it's not in master branch?
这取决于您在 composer.json
中指定版本的方式:
- 您可以向
v1
分支添加新的提交,并且 require 仍会获取最新的v1-dev
。 - 或者您可以在更新的
v1
分支的最新提交上放置一个标签并使用它。
关于git - 如何强制 Composer 检查 `master` 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25466695/