繁体   English   中英

Git 忽略删除的文件

[英]Git ignore deleted files

我有一个网站项目,在某些目录中有超过 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 服务器时它不会删除它们。

有任何想法吗?

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

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

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

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

或特定文件

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

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

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

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

创建子仓库是一种解决方案,但您应该将该子仓库作为子模块

那样:

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

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

要仅提交添加/修改的文件(而不是删除的文件),请执行以下操作:

git add . --ignore-removal
git commit -m "commit message"
for i in `git status | grep deleted | awk '{print $2}'`; do git update-index --assume-unchanged $i; done

适用于 git 2.25.1

如果您遇到此问题:

致命:无法标记文件 PATH/TO/FILE

检查文件路径中没有空格并改用引号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM