让作曲家更新从git repo获取最新版本

wkj*_*agt 19 php git composer-php

我正试图摆脱git子模块,以便在我的团队中进行开发.最重要的原因是,当一个团队成员提交子模块中的更改,但忘记推送到源,但确实在"根"项目中推送对此新提交的引用时,原点被破坏,其他开发人员获得该reference is not a tree错误.如果有问题的开发人员在回家之前推出了这个问题,并且那个不是树的引用指向开发商笔记本电脑上的提交,这是在他的包里,在某个地方的火车上.

我试图用composer替换git子模块.我的理由是,如果git不知道我的依赖关系,这些依赖关系不能破坏repo.我知道如何从packagist添加包,我还设法将自己的git存储库添加到composer中,主要是在这篇博文的帮助下.

问题和最后一个难题是我们的依赖关系是我们正在积极研究的git存储库.如果我将更新推送到其中一个依赖项,我希望开发人员的本地副本在执行时更新为最新版本composer update.我得到的最接近的是为依赖项的每次更改创建一个标记,然后使用此新标记的id更新我的composer.json.

我想知道的是,是否有办法让作曲家总是检查某个分支的最新提交,或者,如果不可能的话,总是在我做的时候得到最新的标签composer update.我真的不介意标记,我只是不想在开发过程中不断更新composer.json.

我用于测试的作曲家文件:

{
    "config": {
        "vendor-dir": "app/vendor"
    },
    "repositories":
    [
        {
            "type": "package",
            "package": {
                "name": "wkjagt/seagull",
                "version": "1.0",
                "source": {
                    "url": "git@github.com:wkjagt/Seagull.git",
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    ],
    "require": {
        "wkjagt/seagull": "1.0.*"
    }
}
Run Code Online (Sandbox Code Playgroud)

我期待1.0.*从1.0开始采用最新的标签,但是一旦作曲家已经拥有1.0.1,如果我创建它就不会得到1.0.2.任何有关这方面的帮助将非常感激.

sch*_*unk 23

如果您不必在存储库部分中单独指定每个版本,则需要将composer.json文件添加到wkjagt/Seagull并包含如下所示的包:

{
   "type": "vcs",
   "url": "https://github.com/wkjagt/Seagull"
},
Run Code Online (Sandbox Code Playgroud)

然后,Composer可以读取您的标签并将其视为版本.如果您总是希望获得最新版本,请使用带有dev标志的包:

"require": {
    "wkjagt/seagull": "@dev"
}
Run Code Online (Sandbox Code Playgroud)

  • @inakiabt那是因为每个默认作曲家都有[最小稳定性](http://getcomposer.org/doc/04-schema.md#minimum-stability)设置'stable',因此它没有'看到'开发版本,除非你在**根**`composer.json`中指定它.每个包或整个项目. (2认同)