我想创建一个针对 Github repo 的 PR在 merge 完成之前,它被用作 Symfony 项目中的供应商。假设将来会完成并且不会被拒绝。该存储库不是使用 git pull 的,而是使用 Composer 安装的。
我做了什么:
- fork 原始存储库
- 创建了分支“keepmessages”
- 编辑了composer.json:
"repositories": [ { "type": "vcs", "url": "https://github.com/clytemnestra/JMSTranslationBundle" } ], "require": { .... "jms/translation-bundle": "dev-keepmessages", .... },
- Composer 更新
现在,这用我自己的 fork 项目分支替换了供应商中的包。我想编辑一些文件,提交它们,当我准备好时,PR 到原始存储库。
我怎样才能做到这一点?
我尝试先将一些更改推送到我自己的存储库,但我得到以下信息:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
这是用composer下载的存储库,所以这可能是问题所在。如果我自己 pull 它,它很可能会起作用,但我想让它与 composter 下载的存储库一起工作,因为我想在工作项目上测试它们。
最佳答案
首先,您必须设置要推送到的存储库的远程位置。
实际上,您只想在 fork 中进行更改,因此进入包的根目录(例如 vendor/package/name/
)并运行:
git remote add origin https://github.com/clytemnestra/JMSTranslationBundle
然后,只需进行更改并在完成后推送即可。
当您想要创建 PR 时,只需进入您的存储库(或原始存储库)并点击“创建 pull 请求”即可。
它会自动建议您将您自己的分支与原始存储库之一进行比较。
选择好的分支并提交PR。
尽量清楚地说明您的 PR 原因,如果存在相关问题,只需在 PR 消息中引用即可。
注意:要发出干净的 pull 请求,请将更改保留在一次提交中。
为此,see git rebase and squashing
注释 2:仅提交您对与您正在处理的错误或功能相对应的文件所做的更改。所有其他文件都应该完好无损,即使测试套件没有通过,您也不必修复它们。
编辑
如果您收到类似 origin remote haslaise
的错误,请运行以下命令:
git remote set-url origin https://github.com/clytemnestra/JMSTranslationBundle
关于php - 修改 Symfony Composer 供应商并使用它们直到他们的 PR 被 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35271250/