[英]Make a new Pull Request on the same branch where the last commit hasn't been merged yet
[英]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.