Git 正确控制专用编写器存储库的版本

Git 正确控制专用编写器存储库的版本,git,package,repository,composer-php,private,Git,Package,Repository,Composer Php,Private,我在Git中有一个私有存储库,我已经设法使它作为一个包与composer一起正常工作。然而,有一件事我不喜欢:当我指定存储库的版本时,我必须说devmaster,才能得到master分支。相反,我希望能够指定存储库版本。那么,如何配置我的存储库以允许其他存储库使用它作为具有版本标识符的依赖项呢 这是我的包的composer.json,它位于我唯一的master分支中: { "name": "username/packagename", "type": "mytype",

我在Git中有一个私有存储库,我已经设法使它作为一个包与composer一起正常工作。然而,有一件事我不喜欢:当我指定存储库的版本时,我必须说
devmaster
,才能得到master分支。相反,我希望能够指定存储库版本。那么,如何配置我的存储库以允许其他存储库使用它作为具有版本标识符的依赖项呢

这是我的包的composer.json,它位于我唯一的
master
分支中:

{
    "name": "username/packagename",
    "type": "mytype",
    "version": "1.0.0"
}
然后在另一个项目中,我想包括这个包,我有一个composer.json:

{
  "repositories": [
    {
      "type": "git",
      "url": "git@githost:username/packagename.git/"
    }
  ],
  "require": {
    "username/packagename": "dev-master"
  },
}
如您所见,我必须说
'dev-master'
才能从我的主分支获取我的包,但我希望能够说'1.0.0'或'^1.0.0'或任何其他可用的composer版本控制操作。我必须在包结构中做些什么才能实现正确的版本控制行为


提前谢谢

创建一个标记,在此之前:删除
composer.json
文件中的
version
条目

在主分支上创建标记的用法示例:

git checkout master
git tag -a 1.0.0
git push --follow-tags
使用带注释的标记将记录创建标记的日期和用户名。Git会要求提供一条消息,这对大多数人来说都是无关紧要的,所以你可以随意填写。我通常选择重复标签名


在标记版本之前删除
version
条目应该很明显:

你好,斯文,谢谢你的帮助,你能给我一个基本的用法示例吗?更新了我的答案。很好,非常感谢斯文,我让它工作了!现在我指定了一个版本“^1.0.0”,它运行良好,我希望在添加新版本后它仍能正常工作:)请注意:您的意思可能是
git标记-v1.0.0
?因为我添加了一个前面没有v的版本标签,而且它没有被composer识别。在前面使用
v
是可选的,它应该在没有它的情况下工作。我怀疑某个地方出现了暂时的问题,但只要它最终起作用,我现在就不会介意太多。没错,斯文,在我的新包提交时,我添加了一个不带“v”前缀的标记,并从我的另一个项目编写器将依赖项正确地更新为新版本。可能是上次滑倒了,再次谢谢,干杯!