【问题标题】:Git: List files that should be ignored, but are notGit:列出应该忽略但不是的文件
【发布时间】:2016-01-20 17:50:05
【问题描述】:

注意:

这不是像git rm -r --cached . && git add . 那样修复我实际上希望能够仅列出文件。

原因:

有时当我编辑我的 .gitignore 并忘记上面的命令时,我最终得到的文件仍在存储库中,但应该被忽略。

什么:

我想要完成的是编写一个 shell 脚本,它能够列出我的文件系统上 should 已被忽略但仍然存在的所有文件。

结果:

最后,我想将它实现到一个持续集成服务器上,它将检查来自 .gitignore 的规则是否与存储库中的文件匹配。

有没有办法手动解析.gitignore

【问题讨论】:

  • 如果 python 是可以接受的(或者至少可以用作灵感),那么this question 可能会有所帮助。

标签: git shell gitignore


【解决方案1】:
git ls-files --cached --ignored --exclude-standard

【讨论】:

  • 完全忘记了 ls 文件。这是对这个问题最好的git 解决方案。
  • 我有git config --global alias.ls ls-files --exclude-standard :-)
  • 很好,我肯定会为此添加别名。感谢分享:)
  • 为此,我的输出为空。我知道我有很多本地文件被忽略并且不在存储库中。但是命令返回没有结果
  • --cached 选项表示仅列出索引的 aka 缓存的 aka 暂存的 aka 添加的 aka 跟踪路径。如果这没有返回任何结果,则没有跟踪路径与忽略模式匹配。
【解决方案2】:

您应该查看git check-ignore --help 您可以使用它来检查是否应包含或排除路径。据我了解,要做你想做的事,你应该使用--no-index 选项。

这至少是过程的git 方面。

该过程的外壳方面将涉及更多。你有很多选择。您可以使用 find 列出所有文件并将它们管道化 git check-ignore 并根据其输出创建应排除的文件列表。

反正那是我的 2 美分。

这是一个涵盖类似Git command to show which specific files are ignored by .gitignore的问题的SO问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    相关资源
    最近更新 更多