繁体   English   中英

作曲家需要尚未合并到分支的特定git commit

[英]composer require specific git commit that hasn't been merged to branch

在我的项目中,我需要使用composer的软件包。 今天早上,我了解到有一个合并的pull-request一夜之间,但是在代码类中留下了一个坏函数,使它中断。 有人修复了该错误并进行了提交,但尚未将其合并到master分支中。

所以我更新composer.json并设置sha1像这样:

"require": {
    "vendor/package": "dev-master#d0d6b33897e1739c55a338fdd0a544bfe5a10721"
}

并运行composer update并获取

d0d6b33897e1739c55a338fdd0a544bfe5a10721 is gone (history was rewritten?), recovered by checking out 33e68f9cec94d52f40192c576d7441ea12852b99

对于尚未合并的提交,我想做什么? 如果这很愚蠢,请原谅我的无知-对作曲家来说还比较陌生。 我可以手动删除代码,直到将其推送为止,但主要出于好奇。

我猜(实际上不知道)您不能包含来自未提交该分支的分支的提交。 如果该提交未合并到master,则它不能包含在其哈希中,而同时指定您要使用“ dev-master”。

您应该指定该修复程序位于的其他分支上。 如果该分支尚未移动到Packagist / Composer已知的存储库中,则可能还必须包括实际提交者的其他存储库,以使Composer能够找到该分支及其提交。

另一方面:为什么还要为不稳定的主分支打扰? 您是否考虑过需要一个稳定的标记版本? 这样,生活就容易了很多(我确实知道,出于我不了解的原因,一些存储库管理器避免了标记版本,从而使每个人的生活都更加痛苦,但希望它能为他们的用例服务)。

下面的示例使用一个bitbucket示例,但是您可以轻松地使用github进行相同的操作

{
    "name": "YOUR_VENDOR_NAME/YOUR_PROJECT_NAME",
    "description": "PPROJECT DESCRIPTION",
    "type": "project",
    "license": "proprietary",
    "authors": [{
      "name": "YOUR_NAME",
      "email": "YOUR_EMAIL"
    }],
    "minimum-stability": "stable",
    "repositories": [{
      "type": "package",
      "package": {
        "name": "YOUR_PACKAGE_VENDOR_NAME/YOUR_PACKAGE_NAME",
        "version": "0.0.1",
        "type": "library",
        "source": {
          "type": "git",
          "url": "git@bitbucket.org:BITBUCKET_USERNAME/REPOSITORY_SLUG.git",
          "reference": "COMMIT_HASH"
        }
      }
    }],
    "require": {
      "YOUR_PACKAGE_VENDOR_NAME/YOUR_PACKAGE_NAME": "0.0.1"
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM