【问题标题】:How to list files ignored with 'skip-worktree'如何列出使用“skip-worktree”忽略的文件
【发布时间】:2017-07-10 20:56:41
【问题描述】:

我已按照建议的here 使用git update-index --skip-worktree <file> 使git 忽略对跟踪文件的本地更改。但是现在我忘记了我将它应用于哪些文件。如何列出所有应用了 skip-worktree 标志的文件?

【问题讨论】:

    标签: git


    【解决方案1】:

    如果在 *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被杀

    ?其他

    Documentation

    因此,要仅列出带有skip-worktree 标志的文件,输出将通过管道传送到以^S 作为参数的grep,这意味着仅列出以S 开头的行。

    【讨论】:

    • 使用 fish shell 时,您必须将 grep 的参数括在引号中 (git ls-files -v | grep '^S'),因为在 fish shell 中插入符号具有特殊含义(重定向 stderr)。
    • 对我来说 Git bash 大写 S 没有显示任何结果,但 small s 有效。
    • 按照同样的想法,但是对于 Windows,使用 powershell,使用这个:git ls-files -v . | select-string -pattern ^S
    • 在 Windows 上使用 Cmder 或 Git Bash:git ls-files -v | grep "^S"
    • 对于 windows 普通命令行:git ls-files -v . | findstr "^S"
    【解决方案2】:

    对于那些使用 Tortoise Git 的人,右键单击文件夹并选择 TortoiseGit > Check for modifications,然后只检查 Show ignore local changes flagged files

    如果您想停止忽略某个文件,请右键单击该文件并选择Unflag as skip-worktree and assume-unchanged

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2012-06-23
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      相关资源
      最近更新 更多