这个问题与Magento 2里的git相关。我有一个正在使用github repo的工作中的Magento 2项目,并安装了一个扩展https://github.com/Adyen/adyen-magento2。
在我的当前情况下,我必须调试该扩展并在远程服务器上进行检查。 我已经fork了那个repo并创建了一个补丁,例如cc_debug.patch文件。 然后,我将该补丁添加到我的本地服务器根目录中。 如果我使用git apply --apply --directory=vendor/adyen/module-payment/ cc_debug.patch
执行补丁,则会修改供应商目录下的文件。 我将更改推送到repo并由于部署脚本,该文件移动到远程服务器。
现在,我只能读取远程服务器,并且没有初始化.git。 如果我在远程服务器上应用补丁,它肯定会被执行,但是如果我下一次推送,由于部署脚本,供应商将重新生成,而通过补丁应用的更改将丢失。 在这里,我需要使用一些钩子,但我对钩子的了解不足。
我假设我必须在我的git本地repo中创建post-deploy hook,如下所示:
#!/bin/sh
patchfile = "cc_debug.patch"
patchingdirectory = "vendor/adyen/module-payment/"
if [ -f "$patchfile" ]
then
git apply --apply --directory=$patchingdirectory $patchfile
fi
现在,我无法将该钩子推送到远程仓库(甚至没有初始化),所以这个解决方案对我来说行不通。或者正如我所知道的,post-update 是特定于远程的(如果我错了,请纠正我),因此我猜测由于该钩子,更改将在远程服务器上执行,但是如果我在另一台本地计算机上再次克隆,则必须再次创建 post-deploy 补丁,这并不是理想情况。
对于我来说,每次执行部署脚本时应用补丁的解决方案是什么?[注意:部署脚本不在我的控制下,因为它由 Magento 在 Github 上提供的 Webhooks 执行。所以,我假设必须使用某些 Webhooks 应用补丁,这又是我的知识缺乏。] 我相信有人和我有相同的情况,请指导我。TIA.