我一直在使用 CakePHP
编写应用程序,它使用 Composer 从 GitHub
和其他来源安装插件和其他存储库。
到目前为止,我习惯将所有 vendor/
文件添加到 Git 存储库,由于项目中安装了大量 composer
,这极大地增加了存储库的大小。
根据使用 VCS
时涉及的最佳实践,vendor/
目录会添加到 .gitignore
文件中,以防止推送到 VCS 存储库。
在我的 CakePHP
应用程序中,我需要某种在 GitHub
或其他来源上找不到的脚本。因此,我在
vendor/anuj-tbe/
导演。并在 composer.json
文件中,使用标记条目
"autoload": {
"psr-4": {
"App\\": "src",
"AnujTbe\\": "vendor/anuj-tbe",
}
},
并且还想将脚本文件推送到 VCS,因为稍后无法使用 Composer 下载它。
<强>1。 vendor/
是放置自定义脚本文件的正确位置吗?
2.我可以忽略除我自己的目录之外的供应商文件吗?
最佳答案
是的,对于你的两个问题。
首先,VCS 中不应跟踪 vendor/
,您还可以引用示例 .gitignore file对于 CakePHP。
其次,您可以将脚本文件放置在任何您喜欢的位置,包括 vendor/anuj-tbe/
下。因此,您只需在 .gitignore
中排除 vendor/anuj-tbe
即可。
按照以下步骤从 VCS 中删除 vendor/
,同时保留 vendor/anuj-tbe/
。
# After adding your scripts in vendor/anuj-tbe/
git add .
git commit -m 'add scripts'
touch .gitignore
确保.gitignore中包含以下内容:
vendor/*
!vendor/anuj-tbe
继续执行以下命令:
git rm vendor/* --cached -r
git add .
git commit -m 'remove vendor in VCS except vendor/anuj-tbe'
现在,除了 vendor/anuj-tbe
之外,vendor/
中的所有文件和子文件夹在 VCS 中都会被忽略。
关于git - 在 Composer 项目中使用 VCS 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48018007/