【git】git update-index --assume-unchanged(不改动.gitignore实现忽略文件)

文章目录

  • 原因分析:
  • 添加忽略文件(取消跟踪)的命令:
  • 取消忽略文件(恢复跟踪)的命令:
  • 查看已经添加了忽略文件(取消跟踪)的命令:

======================

原因分析:

已经维护的项目,文件已经被追踪,gitignore文件不方便修改、没有权限修改等原因,需要通过别的命令去忽略某些文件或者是某些文件夹不进行上传:
注:如果需要修改.gitignore的规则去改变上传的文件,参考博文:.gitignore的使用

添加忽略文件(取消跟踪)的命令:

git update-index --assume-unchanged 【文件路径:文件夹名/文件名】

这里可以忽略文件名,忽略整个文件夹,也可忽略整个文件夹下的某个格式的文件:

git update-index --assume-unchanged   要忽略的文件夹名/文件夹下文件名
git update-index --assume-unchanged   要忽略的文件夹名/
git update-index --assume-unchanged   要忽略的文件夹/*.后缀名

注意:这里要注意的是添加文件夹名的时候,要注意具体到文件夹名之后还要加上 / ,不然会报错!!!!

【git】git update-index --assume-unchanged(不改动.gitignore实现忽略文件)_第1张图片

取消忽略文件(恢复跟踪)的命令:

git update-index –no-assume-unchanged 【文件路径:文件夹名/文件名】

查看已经添加了忽略文件(取消跟踪)的命令:

git ls-files -v  //查看所有文件的文件标识,H:正常跟踪文件;h:assume-unchanged文件
文件标识 描述
H 正常跟踪文件
S skip-worktree文件
h assume-unchanged文件
M unmerged, 未合并
R removed/deleted
C modified/changed修改
K to be killed
? other,忽略文件

如果忽略的文件多了,可以使用以下命令查看忽略列表

git ls-files -v | grep '^h'

提取文件路径,方法如下

git ls-files -v | grep '^h' | awk '{print $2}'

所有被忽略的文件,取消忽略的方法,如下

git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged  

你可能感兴趣的:(#,git,git)