1

我在我的项目中包含了 Zend,这个库有大约 2.8k 个文件。由于这是一个 PHP 框架,因此我的团队接触此文件夹的机会非常低。

问题是,我应该如何 gitignore 这个文件夹但仍将这个框架保留在存储库中?这甚至可能吗?即,我想Zend在 every 中被克隆clone,但我不希望 git 每次扫描这些文件夹statuscommit- 这需要 3 秒或更长时间,具体取决于我的 PC 状态。

  • 子模块?但这不是远程仓库,或者这意味着我需要为 Zend 创建一个远程仓库
  • gitignore,add -f似乎添加了框架,但所有文件都被跟踪

忽略文件夹的原因是为了加快提交速度。这不是我们使用的唯一框架,另一个框架也有超过数千个文件 - 在 Windows 机器上它慢得难以忍受。

编辑

似乎之前已经回答过,唯一的方法是使用子模块:

它似乎update-index是你的方式之一:

4

3 回答 3

1

使用子模块。通过将其托管在 github 上使其成为远程仓库。现在,您将拥有一个不错的轻量级 repo,其中仅包含团队所做的工作。即使您想更新 Zend,您也可以这样做,但一旦完成就不会影响日常工作。

于 2012-07-16T04:38:18.553 回答
0

如果您将文件放在 Zend 目录中,例如.gitkeep.gitignore,然后将以下内容添加到您的 .gitignore 中会怎样:

# ignore everything in Zend
Zend/*
# except .gitkeep
!Zend/.gitkeep

这将产生忽略该目录中所有内容的效果,但会保留该目录以用于 .gitkeep。

我不是 100% 肯定 git 会做聪明的事情,而不是扫描目录中的其他文件,但我很有希望。

于 2012-07-16T16:55:42.210 回答
-1

使用带有 --cached 选项的 git rm 命令。有了它,git会销毁框架的所有轨道。因此,您在项目文件夹中再次插入框架并将其添加到 .gitignore。我正在寻找您的参考资料。

编辑:

我发现。看看这里

于 2012-07-16T04:34:21.813 回答