我有一个网站项目,在某些目录中有超过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服务器上拉动时它就不会删除它们。
有什么想法吗?
答案 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就会忽略它们。