我们有一个私人服务器来处理回购项目。现在,按照我已经做过几次的程序,我突然偶然发现了#34;作曲家要求"其中一个模块上不包含应该存在的.git/
文件夹。
"可能发生"我想,在创建回购时,有人可能会忘记包含它。但是,当转到vendor/company/module
时,删除文件,执行git init
+ git remote add origin ssh:repo.git
+ git pull
,我发现git add .git/
什么也没做,只是给我警告下面:
$ git add .git/
warning: LF will be replaced by CRLF in .git/FETCH_HEAD.
The file will have its original line endings in your working directory.
error: Invalid path '.git/FETCH_HEAD'
error: unable to add .git/FETCH_HEAD to index
fatal: adding files failed
我想知道是否有人知道如何在从Satis服务器中提取(.git/
)时确保composer install/update/require
被包含在内。
Haven没有找到一个搜索SO的解决方案,可以在多页结果中搜索[git] folder
,[git] .git/ folder
或更多变体。
答案 0 :(得分:0)
答案来自一位同事。
当我安装软件包时,它只适用于一个软件包。因此我使用composer require company/project/module
来安装它。
但是,在为项目安装整个vendor/
文件夹时,我们使用composer install --prefer-source -v
。
使用--prefer-source
作为-v
标志的主要区别只是在终端中提供了更详细(详细)的输出。
我应该做的是composer require company/project/module --prefer-source
不知道为什么这样做有效;关注from the docs:
- prefer-source :有两种方法可以下载软件包:source和dist。对于稳定版本,Composer默认使用dist。 源是版本控制存储库。如果--prefer-source是 启用后,如果有,Composer将从源安装。这是 如果您想对项目进行错误修复并获取本地git,则非常有用 直接克隆依赖。
=========================
--prefer-source
的反面是--prefer-dist
;关注from the docs
- prefer-dist :反向--prefer-source,如果可能,Composer将从dist安装。这可以大大加快安装的速度 服务器和其他通常不运行更新的用例 供应商。如果你这也是一种规避git问题的方法 没有正确的设置。
有关在项目中为包(repo)设置不同来源的更多信息,请found here。