从远程pull文件一致报error: Your local changes to the following files would be overwritten by merge:
提示有文件未commit,可是本地已经无文件可,后来发现提示未提交这些文件都是skip worktre文件,需要恢复取消skipwork状态,然后暂存本地的修改,再进行pull远程文件就可以了。
把所有标记为skip worktree的问价取消标记命令:
git ls-files -v | grep -i ^S | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree
git ls-files -v
显示所有文件的状态
grep -i ^S
过滤选择只有skip worktree (S)状态 或者 skip worktree 和 assume unchanged (s)状态的文件, -i 忽略大小写
cut -c 3-
提取从第三个字符开始到结尾,去掉状态只保留路径
tr '\012' '\000'
替换换行符 (\012) 为 (\000)
xargs -0 git update-index --no-skip-worktree
把以0分割的路径字符传给 git update-index --no-skip-worktree 取消