一、忽略文件的常用方法
1、git通常在.gitignore文件进行配置,来忽略本地文件。但是这仅对于重来没有提交过的文件有效。
2、使用git update-index --skip-worktree path设置标识,使git忽略对应的文件。
3、使用git update-index --assume-unchanged path设置标识,使git忽略对应的文件。
二、skip-worktree和assume-nochanged的差别
使用 git update-index --skip-worktree [file]
可以实现修改本地文件不会被提交,但又可以拉取最新更改的需求。适用于一些不经常变动,但是必须本地化设置的文件
另外还有 git update-index --assume-unchanged [file]
该命令只是假设文件没有变动,使用reset时,会将文件修改回去
NOTE: 该方法在使用
add .
命令添加所有文件到暂存区,commit
提交到版本库,修改内容依然会被加入到版本库中
三、取消标识
git update-index --no-skip-worktree path
git update-index --no-assume-unchanged path
四、查看哪些文件打了标识
查看打了skip-worktree标识的文件 : git ls-files -v | grep -i ^S
查看打了assume-unchanged标识的文件 :git ls-files -v | grep ^h
五、清除所有文件的标识
git ls-files -v | grep ^h | cut -c 3- | tr ‘\012‘ ‘\000‘ | xargs -0 git update-index --no-assume-unchanged
git ls-files -v | grep -i ^S | cut -c 3- | tr ‘\012‘ ‘\000‘ | xargs -0 git update-index --no-skip-worktree
参考:git 操作大全