忽略文件夹中的文件,但仍将其添加到Git

忽略文件夹中的文件,但仍将其添加到Git,git,frameworks,gitignore,Git,Frameworks,Gitignore,我已经在我的项目中包括了Zend,这个库有大约2.8k的文件。由于这是一个PHP框架,我的团队接触这个文件夹的机会非常低 问题是,我应该如何忽略这个文件夹,但仍然将这个框架保存在存储库中?这可能吗?i、 例如,我希望在每个克隆中克隆Zend,但我不希望git在每个状态或提交时扫描这些文件夹-这需要3秒或更长时间,取决于我的电脑状态 子模块?但这不是一个远程回购,或者这意味着我需要为Zend创建一个远程回购 gitignore和add-f似乎将框架添加了回去,但所有文件都被跟踪 忽略文件夹的原

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

问题是,我应该如何忽略这个文件夹,但仍然将这个框架保存在存储库中?这可能吗?i、 例如,我希望在每个
克隆中克隆
Zend
,但我不希望git在每个
状态或
提交时扫描这些文件夹-这需要3秒或更长时间,取决于我的电脑状态

  • 子模块?但这不是一个远程回购,或者这意味着我需要为Zend创建一个远程回购
  • gitignore和
    add-f
    似乎将框架添加了回去,但所有文件都被跟踪
忽略文件夹的原因是为了加快提交速度。这不是我们使用的唯一框架,另一个框架也有数千个文件——在windows机器上,它的速度慢得令人无法忍受

编辑

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

似乎
更新索引
是一种:


将git rm命令与--cached选项一起使用。有了它,git将破坏框架的所有轨迹。因此,您可以在项目文件夹中再次插入框架,并将其添加到.gitignore中。我在找你的推荐人

编辑:


我找到了。看一看。

使用子模块。通过将其托管在github上,使其成为远程回购。你将有一个很好的轻量回购,现在只包括团队所做的工作。即使您想更新Zend,也可以这样做,但一旦更新完成,就不会影响日常工作。

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

# ignore everything in Zend
Zend/*
# except .gitkeep
!Zend/.gitkeep
这将产生忽略该目录中所有内容的效果,但将保留该目录以用于.gitkeep


我不能100%肯定git会做得很聪明,不会在目录中扫描其他文件,但我很有希望。

我在项目中也使用了一个大框架,而且速度没有问题。你需要取消跟踪Zend的文件(删除它们),提交项目和加载项。git忽略框架的文件夹,这样它就会被忽略,你可以再次提交。虽然我的windows计算机已经被gc’ed,但速度很慢。我知道它在*nix上没有问题,但是我怎么能让git忽略这个框架呢?我试图忽略并添加-f。git似乎仍然知道我秘密修改了其中一个文件,它将如何工作?我尝试了
git rm-r--cached
,从跟踪中删除了整个Zend,并将其推送到github。Github删除了我的
Zend
,但事实并非如此,因为我希望跨团队共享
Zend
。我应该如何将它添加回github而不跟踪它?(听起来很有趣lolx)子模块是一种方式,谢谢,但我想保留它作为我的最后手段-以防它不可能达到这样的要求。谢谢为什么这是最后的手段?它是针对这类问题而设计的,就像我不想把现有的框架作为一个公共的repo托管一样——它没有意义,它不属于meIs zen,也不属于开源?你可以在bitbucket上以私有回购的形式免费托管它。当然我可以重新托管它们(zend、twig、google api、extjs…),问题是这是否是解决这个问题的唯一方法。如果是这样的话,我会花一些时间做这件事。问题是忽略文件夹中的所有内容,但所有文件都会出现在每个克隆上。最接近的是子模块,甚至是更新索引。