Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 使用Composer路径库和合并插件开发,如何避免Composer.lock的更新?_Git_Composer Php_Development Environment_Dependency Management - Fatal编程技术网

Git 使用Composer路径库和合并插件开发,如何避免Composer.lock的更新?

Git 使用Composer路径库和合并插件开发,如何避免Composer.lock的更新?,git,composer-php,development-environment,dependency-management,Git,Composer Php,Development Environment,Dependency Management,情况是这样的 我正在开发a包,它依赖于b包。后者托管在bitbucket上: projects/ ├── package-a/ ├── package-b/ 我需要对package-b进行更改并查看结果,而无需推送代码,然后执行编写器更新,然后在完成工作时,我将推送一个新标记并将package-a部署到生产服务器 因此,我最终使用了和,配置如下: 以下是a包的composer.json: 此文件将包括composer.local.json(仅在我的本地计算机中!此文件未提交或推送到生产服务器)

情况是这样的

我正在开发a包,它依赖于b包。后者托管在bitbucket上:

projects/
├── package-a/
├── package-b/
我需要对package-b进行更改并查看结果,而无需推送代码,然后执行
编写器更新
,然后在完成工作时,我将推送一个新标记并将package-a部署到生产服务器

因此,我最终使用了和,配置如下:

以下是a包的
composer.json

此文件将包括
composer.local.json
(仅在我的本地计算机中!此文件未提交或推送到生产服务器),其中我说的是“使用开发人员主版本和路径存储库”:

如果我从package-a运行
composer安装
,那么package-b是符号链接的,我可以直接对其进行操作,从这个意义上说,安装是很好的

但是,当我使用(也控制
composer.lock
文件的版本)将package-a部署到服务器时,它会执行
composer安装,但lock文件包含对package的引用-b@dev-master使用路径存储库(这是错误的)


你知道怎么解决这个问题吗?我确信这是一个普通的,但我不能得到它。

为了帮助开发软件包,您可以使用

包-a内部
文件

rm -rf vendor/package-b
composer update --prefer-source package-b
这应该将
package-b
克隆到
vendor
目录中。从那里,您可以在
vendor/package-b
中进行更改,并查看反映在当前应用程序中的更改(
package-a

当您对包b中的更改感到满意时,可以关闭提交更改。您的
package-b
工作将完成

在部署
package-a
之前,您需要确保
composer.lock
文件中引用的
project-b
提交已推送到远程(您所说的bitbucket)并且是最新的

您甚至可能根本不需要单独签出
project-b
。在
project-a
中执行任何需要的工作。(只是一种可能性)


有一件事会让你的生活变得非常轻松,那就是开始标记你的软件包的发布版本

与其追逐单独的移动目标,不如开始考虑需要添加到
package-b
中的功能,以使
package-a
中的新功能发挥作用。。。添加该功能,然后释放它。然后您对
package-a
的工作是“更新到
package-b
的新版本,这样我就可以使用很酷的新功能
x

它将帮助您的发布过程,改进功能规划,并且通常会带来更干净的体验

{
    "require": {
        "my/package-b": "dev-master"
    },
    "repositories": [
        {
            "type": "path",
            "url":  "../package-b"
        }
    ]
}
rm -rf vendor/package-b
composer update --prefer-source package-b