郴州市建设网站,软服业营收破334亿,iis中浏览网站是什么,福建建设执业资格注册管理中心网站本文主要介绍如何在git中删除文件但是让git不追踪这些删除操作 文章目录 场景说明解决方案删除一个文件删除一个文件夹以及子文件夹 场景说明
自己在使用react开发一个包含大量媒体文件的网站时#xff0c;项目初期临时将这些媒体文件都放在项目中#xff0c;直接使用访问本… 本文主要介绍如何在git中删除文件但是让git不追踪这些删除操作 文章目录 场景说明解决方案删除一个文件删除一个文件夹以及子文件夹 场景说明
自己在使用react开发一个包含大量媒体文件的网站时项目初期临时将这些媒体文件都放在项目中直接使用访问本地文件的方式读入媒体文件。
这样做会导致因为项目中包含大量媒体文件本地开发时React Hot Loader在compiling的时候速度会非常慢严重影响修改代码后在浏览器查看页面效果的效率。
但对于生产环境Build时影响不大。所以考虑在将文件同步到代码仓库后本地删除这些媒体文件但是删除的操作不能让git同步到代码仓库否则会导致生产环境pull下来的仓库里也没有媒体文件影响业务使用。
所以解决问题的重点在于 如何删除本地已经提交过的目录下的文件但是让git不追踪这些删除操作即不显示在git的changes里面
解决方案
gitignore可以ignore掉还没进到项目里的文件或者是非删除操作的change但是对于删除一个已经在git repo的文件.gitignore不起作用。
关于git删除文件或者停止追踪文件的方法可以有
Ignore changes to untracked files by using a .gitignore fileIgnore changes to untracked files by using an exclude fileStop tracking a file and ignore changes using git update-indexStop tracking a file and ignore changes using git rm 更多具体内容可以参考文档
删除一个文件
git自带的命令中可以使用git update-index --skip-worktree file path来ignore掉指定的文件执行命令之后再删除文件git的changes中也不会列出这个文件被删除的change。
删除一个文件夹以及子文件夹
因为git update-index --skip-worktree是针对一个文件所以对于一个文件夹下的文件和子文件夹的全部文件就得需要配合其他linux命令来达成如下
进入到要删除的文件夹cd /path/to/folder/want/to/delete通过命令将文件夹下的全部文件都作为输入传到git update-index --skip-worktree命令find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c cd {} pwd git ls-files -z ${pwd} | xargs -0 git update-index --skip-worktree \;之后删除掉这个文件夹即可git不会追踪这些删除 写文不易如果对你有帮助的话来一波点赞、收藏、关注吧~