2016-09-28 160 views
0

我们有一个私人服务器来处理项目的回购。现在,按照我已经做了几次的程序,突然间,我偶然发现其中一个模块上的“composer require”不包含应该在那里的.git/文件夹。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 

认为我会问,如果有人有一个想法如何确保.git/在从Satis服务器上拉(通过composer install/update/require)时包含在内。

尚未找到针对[git] folder[git] .git/ folder或多个结果页面的更多变体搜索SO的解决方案。

+0

Git仓库的'.git /'目录从不被跟踪。它在你运行'git clone'或'git init'时被创建。事实上,它不能被追踪。这个特定的依赖来自Git回购或其他地方吗? – Chris

+0

我们自己的git回购之一。只是从来没有查过为什么我们总是使用'​​--prefer-source'标志。尽管如此,请看下面的答案。但是无法找到如何在composer配置中包含一个自动的'--prefer-source',这样在终端中这个标志就没有必要了。你有什么想法吗? – Nukeface

回答

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源:有下载包的方式有两种:源和DIST。对于稳定版本,Composer将默认使用dist。 来源是版本控制库。如果启用--prefer-source为 ,则Composer将从源安装(如果有)。这是 有用的,如果你想对项目进行错误修正,并直接获得本地git 依赖项的克隆。

=========================

--prefer-source反向是--prefer-dist;以下from the docs

--prefer - 距离:--prefer源的反向,作曲家将DIST如果可能的安装。这可以加快在基本构建 服务器和其他使用情况下的安装,其中您通常不会运行供应商的更新 。如果你的 没有正确的设置,这也是一种避免git问题的方法。

有关在项目中为包(回购)设置不同来源的更多信息,可以是found here