20

我有一个网站项目,在某些目录中有超过 50,000 个不重要的文件(用于开发)。

/website.com/files/1.txt
/website.com/files/2.txt
/website.com/files/3.txt
/website.com/files/etc.txt

/files 中的内容已经在 repo 中。我想删除本地副本上 /files 中的所有文件,但我希望 git 忽略它,这样当我在 Web 服务器上执行拉取操作时它不会删除它们。

有任何想法吗?

4

4 回答 4

15

忽略整个目录不起作用。我不得不这样做:

for i in `git status | grep deleted | awk '{print $3}'`; do git update-index --assume-unchanged $i; done
于 2011-07-28T09:33:02.893 回答
10

下面的代码适用于已删除和修改的文件,以便在您执行git status时忽略它。

 git update-index --assume-unchanged dir-im-removing/

或特定文件

git update-index --assume-unchanged config/database.yml

忽略git中修改(但未提交)的文件?

当心:当您执行“ git commit -am ”时,上面对已删除文件的建议包括已删除的文件!

对我有用的解决方案是不删除文件,而是将其内容留空。这就是我用来静音 .htaccess 文件的方法。

于 2010-08-10T21:56:21.237 回答
3

创建子存储库是一种解决方案,但您应该将该子存储库设置为submodule

那样:

  • 您在正常内容和“文件”内容之间保持链接
  • 如果“文件”内容在某一天发生了演变,您可以在主仓库中注册其演变
  • 您可以在没有“”的情况下签出您的主仓库git submodule update(即不填写 ' files' 内容
  • 在部署时,a git submodule update之后 git submodule init就足以取回正确版本的 ' files' 内容。
于 2010-04-27T04:12:32.487 回答
2

好的,我找到了解决方案。只需在子目录中创建一个新的 repo,父 repo 就会忽略它们。

于 2010-04-27T03:04:10.997 回答