git忽略本地文件

时间:2023-01-25 15:03:08

一、忽略文件的常用方法

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 操作大全