2017-05-04 62 views
1

我在Git中有一个私有存储库,并且我已经设法使它与作曲家一起正常工作。不过,有一件事我不喜欢:当我指定版本库时,我不得不说dev-master,以获取主分支。我想要的是能够指定存储库版本。那么,如何配置我的存储库以允许其他使用版本标识符的库作为依赖项?正确版本化一个私人作曲家库

这是我包的composer.json,它驻留在我的唯一master分支:

{ 
    "name": "username/packagename", 
    "type": "mytype", 
    "version": "1.0.0" 
} 

然后在另一个项目中,我想包括这个包我有这样的composer.json:

{ 
    "repositories": [ 
    { 
     "type": "git", 
     "url": "[email protected]:username/packagename.git/" 
    } 
    ], 
    "require": { 
    "username/packagename": "dev-master" 
    }, 
} 

正如你所看到的,我不得不说'dev-master'从我的主分支得到我的包,但我想能够说'1.0.0'或'^ 1.0.0'或任何其他作曲家版本操作可用。在我的包结构中,我必须做些什么才能实现正确的版本控制行为?

在此先感谢!

回答

1

创建一个标签,并在此之前:删除version条目composer.json文件中。对于在主分支创建标记

用例:

git checkout master 
git tag -a 1.0.0 
git push --follow-tags 

使用注释标签将记录创建标签的日期和用户名。 Git会要求一条消息,这对大多数人来说是无关紧要的,所以你可以填写任何你喜欢的东西。我通常选择重复标签名称。

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

+0

嗨斯文,谢谢你的帮助,你能给我一个基本的使用例子吗? –

+0

更新了我的答案。 – Sven

+0

不错,非常感谢Sven,我懂了它的工作原理!现在我指定了一个版本“^ 1.0.0”,它工作的很好,我希望它能在我添加一个新版本后仍然有效:)只是说明:可能你的意思是'git tag -a v1.0.0'而不是?因为我在前面添加了一个没有v的版本标签,并且它没有被作曲者识别。 –

相关问题