我有一个网站项目,在某些目录中有超过 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 服务器上执行拉取操作时它不会删除它们。
有任何想法吗?
我有一个网站项目,在某些目录中有超过 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 status时忽略它。
git update-index --assume-unchanged dir-im-removing/
或特定文件
git update-index --assume-unchanged config/database.yml
当心:当您执行“ git commit -am ”时,上面对已删除文件的建议包括已删除的文件!
对我有用的解决方案是不删除文件,而是将其内容留空。这就是我用来静音 .htaccess 文件的方法。
创建子存储库是一种解决方案,但您应该将该子存储库设置为submodule。
那样:
git submodule update
(即不填写 ' files
' 内容git submodule update
之后 git submodule init
就足以取回正确版本的 ' files
' 内容。好的,我找到了解决方案。只需在子目录中创建一个新的 repo,父 repo 就会忽略它们。