======================
原因分析:
已经维护的项目,文件已经被追踪,gitignore文件不方便修改、没有权限修改等原因,需要通过别的命令去忽略某些文件或者是某些文件夹不进行上传:
注:如果需要修改.gitignore的规则去改变上传的文件,参考博文:.gitignore的使用
添加忽略文件(取消跟踪)的命令:
git update-index --assume-unchanged 【文件路径:文件夹名/文件名】
这里可以忽略文件名,忽略整个文件夹,也可忽略整个文件夹下的某个格式的文件:
git update-index --assume-unchanged 要忽略的文件夹名/文件夹下文件名
git update-index --assume-unchanged 要忽略的文件夹名/
git update-index --assume-unchanged 要忽略的文件夹/*.后缀名
注意:这里要注意的是添加文件夹名的时候,要注意具体到文件夹名之后还要加上 / ,不然会报错!!!!
取消忽略文件(恢复跟踪)的命令:
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