Git无法看到作曲家安装的文件

时间:2014-07-17 09:33:51

标签: git github composer-php

我遇到了以下问题:

我使用composer install在我的项目中安装了一些依赖项(symfony)。

但是当我尝试提交时,它看不到任何文件。

我搜索过每个.gitignore文件,但我认为这不是因为忽略了这些文件 - 我已经使用SourceTree检查了这些文件,这些文件甚至没有被“忽略”或“全部”,他们只是“不要” t根本就存在于git中。

所以,我已经尝试了git add vendor/symfony/*git add vendor/symfony/*/*等,但它只是在提交中添加了一些文件夹,而不是文件。

当我移动整个symfony文件夹时,没有任何变化。如果我重命名的话也一样。 但是,如果我在symfony文件夹中创建一些文件,它只包含其他文件夹(没有文件),它就会出现。但是 - 如果我在symfony中的另一个文件旁边创建文件,它将不会出现。

我查看了/.git/info/exclude,但也没有任何可疑之处。

平台: Windows 7 x64 git 1.8.4

关于作曲家我有什么不知道的吗?或者我错过了什么?

感谢您的回答。

编辑:

那么, 这有点奇怪,但我做到了。

首先,我尝试添加单个文件及其完整路径(使用git add)。 CMD抛出错误,无法添加,因为此文件位于子模块中。

根据this advice我已经尝试了git rm --cached -r vendor/symfony,它可能会清除一些参考文献。

然后我可以再次调用git add,但我必须使用路径到文件(有很多嵌入文件夹),例如git add vendor\symfony\browser-kit\Symfony\Component\BrowserKit\*

我实际上不知道发生了什么,但是在我创建了.bat文件并在那里调用了所有文件后,我可以提交它。

感谢您的时间,帮助和建议。 :)

2 个答案:

答案 0 :(得分:1)

我还是git的新手,但我可以分享自己添加文件的个人经验。我仍在使用各种程序,直到找到最适合我的方式。我已经安装了MySysGit,TortoiseGit,因为我使用GitHub,我有GFW程序,它随之安装PowerShell。

Power Shell

我要输入的第一件事是git status。如果您有未跟踪的文件,请尝试添加不带*的文件夹。我已经看到它以递归方式在我指定的文件夹及其子目录中添加文件。如果这不起作用,那就使用TortoiseGIt。

git add vendor/symfony

只要有一个供应商/ symfony你在shell中它应该添加文件及其子目录。

TortoiseGIt

右键单击该文件夹,然后查找显示add的蓝色十字。一旦它发现所有文件全部选择并让它处理它们。然后再次使用git status来查看更改内容以及可能还需要做什么。

只要有未跟踪的文件,TortoiseGit就应该添加它们和任何子目录。

Git Status

如果git status没有显示任何未跟踪的文件,并且硬盘驱动器上的git repo中没有供应商/ symfony,那么我会检查并查看composer install是否还需要其他参数你希望他们去的文件。

答案 1 :(得分:1)

您需要将整个vendor文件夹添加到.gitignore中,而不是将这些依赖项提交到您自己的存储库中。

你可以提交它们,但是如果你碰巧克隆了Git存储库,那么它们将永远作为子模块添加,我被告知它们不是Git最好的想法。我希望您在尝试更新时遇到问题。

我有很好的经验,没有提交这些文件,但是在我执行composer install的本地Git仓库中添加了一个post-checkout钩子。我只提交composer.lock文件。这样,存储库保持很小,但每个结帐都会自动更新所有依赖项。

此外,我有运行测试的Phing脚本,在此之前的一步,composer install也被调用。