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

时间:2012-07-16 04:24:29

标签: git frameworks gitignore

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

问题是,我应该如何gitignore这个文件夹,但仍然将此框架保存在存储库中?这甚至可能吗?即,我希望Zend克隆到每个clone,但我不希望git在每个statuscommit上扫描这些文件夹 - 它需要3秒钟或更多取决于我的电脑状态。

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

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

修改

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果您将文件放在Zend目录中,如.gitkeep,然后将以下内容添加到您的.gitignore,该怎么办?

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

这将忽略该目录中的所有内容,但会将目录保留为.gitkeep。

我不是百分之百确定git会做聪明的事情而不是扫描目录中的其他文件,但我非常希望。

答案 2 :(得分:-1)

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

修改

我找到了。看看here