【发布时间】:2017-07-10 20:56:41
【问题描述】:
我已按照建议的here 使用git update-index --skip-worktree <file> 使git 忽略对跟踪文件的本地更改。但是现在我忘记了我将它应用于哪些文件。如何列出所有应用了 skip-worktree 标志的文件?
【问题讨论】:
标签: git
我已按照建议的here 使用git update-index --skip-worktree <file> 使git 忽略对跟踪文件的本地更改。但是现在我忘记了我将它应用于哪些文件。如何列出所有应用了 skip-worktree 标志的文件?
【问题讨论】:
标签: git
如果在 *nix (Linux, Mac) 上使用以下命令:
git ls-files -v . | grep ^S
或者,如果在 Windows 上,您可以使用:
git ls-files -v . | findstr "^S"
说明:
git ls-files . 列出 repo 中的所有文件(假设您位于根文件夹中)。 -v 使输出变得详细,这意味着它将用文件名前面的字母缩写文件状态。选项有:
H 缓存
S 跳过工作树
M 未合并
R 已删除/删除
C 修改/更改
K被杀
?其他
因此,要仅列出带有skip-worktree 标志的文件,输出将通过管道传送到以^S 作为参数的grep,这意味着仅列出以S 开头的行。
【讨论】:
git ls-files -v | grep '^S'),因为在 fish shell 中插入符号具有特殊含义(重定向 stderr)。
git ls-files -v . | select-string -pattern ^S
git ls-files -v | grep "^S"
git ls-files -v . | findstr "^S"
对于那些使用 Tortoise Git 的人,右键单击文件夹并选择 TortoiseGit > Check for modifications,然后只检查 Show ignore local changes flagged files。
如果您想停止忽略某个文件,请右键单击该文件并选择Unflag as skip-worktree and assume-unchanged。
【讨论】: