Git忽略已删除的文件

时间:2010-04-27 02:35:49

标签: git web ignore delete-file

我有一个网站项目,在某些目录中有超过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 个答案:

答案 0 :(得分:10)

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

for i in `git status | grep deleted | awk '{print $3}'`; do git update-index --assume-unchanged $i; done

答案 1 :(得分:6)

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

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

或特定文件

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

Ignore modified (but not committed) files in git?

注意:当您执行“ git commit -am ”时,上面有关已删除文件的建议包含已删除的文件!

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

答案 2 :(得分:2)

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

那样:

  • 您在正常内容和“文件”内容之间保持链接
  • 如果'文件'内容有一天发展,您可以在主回购中注册其进展
  • 您可以在没有“git submodule update”的情况下结帐您的主要仓库(即没有填写“files”内容
  • 部署后,git submodule update之后的git submodule init足以取回正确版本的“files”内容。

答案 3 :(得分:1)

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