git的本地文件忽略功能
2024/06
05
18:06
需求
git管理下的某些文件或者目录,要本地删了它,并且忽略它
1、使用.gitignore会影响其它人
2、对于已上传(追踪)的文件,使用.gitignore是无效的
3、对于已上传(追踪)的文件,使用skip-worktree是无效的
所以可以使用assume-unchanged功能
以下命令为linux版本,如果是windows系统,右键菜单Open Git Bash here亦可

update-index命令
在git根目录,用bash打开命令行,可以执行相应的git命令
git的update-index选项说明:
–assume-unchanged 本地忽略,停止文件追踪
–no-assume-unchanged 撤销忽略
–really-refresh 刷新,无视assume-unchanged
忽略文件
git update-index --assume-unchanged Assets/tmp.txt
不忽略文件
git update-index --no-assume-unchanged Assets/tmp.txt
忽略目录
–assume-unchanged只能忽略文件,所以需要递归此目录所有文件
在bash中cd到目录,然后
git ls-files -z | xargs -0 git update-index --assume-unchanged
不忽略目录
如果文件已经被删了,使用shell的ls命令是无法获得文件名的,所以需要先really-refresh
先看一下really-refresh
git update-index --really-refresh
输出了 Assets/UXTools/Res/UX-GUI/Res/Fonts.meta: needs update
需要截取: needs update前面的文件名进行命令行恢复
执行以下命令即可递归不忽略所有文件
git update-index --really-refresh | awk -F ':' '{print $1}' | xargs git update-index --no-assume-unchanged
awk说明
-F ':' 为指定:作为分隔符
$1 为第1个截取参数
'{print $1}' 为打印第1个参数
也可以添加过滤条件
git update-index --really-refresh | grep Assets/MyEditor/ | awk -F ':' '{print $1}' | xargs git update-index --no-assume-unchanged
CopyRights: The Post by BY-NC-SA For Authorization,Original If Not Noted,Reprint Please Indicate From 老刘@开发笔记
Post Link: git的本地文件忽略功能
Post Link: git的本地文件忽略功能