Git忽略已删除的文件

y1aodyip  于 2022-11-20  发布在  Git
关注(0)|答案(5)|浏览(284)

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

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

/files中的内容已经在仓库中了。我想删除本地副本上/files中的所有文件,但我希望git忽略它,这样当我在Web服务器上进行拉取操作时,它就不会删除它们。
有什么想法吗?

ocebsuys

ocebsuys1#

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

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

6jjcrrmo2#

下面的代码可以在执行 git status 时忽略已删除和已修改的文件。

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

或特定文件

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

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

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

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

sc4hvdpw

sc4hvdpw3#

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

wfveoks0

wfveoks04#

创建子存储库是一种解决方案,但是您应该将该子存储库作为子模块
芳子道:

  • 在普通内容和“文件”内容之间保持链接
  • 如果“文件”内容有一天发生了变化,您可以在主存储库中注册其变化
  • 您可以 checkout 不包含“git submodule update“(即不填充”files“内容)的主存储库
  • 在部署时,git submodule init之后的git submodule update将足以取回“files”内容的正确版本。
whhtz7ly

whhtz7ly5#

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

git add . --ignore-removal
git commit -m "commit message"

相关问题