【发布时间】:2020-10-13 22:20:44
【问题描述】:
用 Git 术语来表达这个问题的另一种方法是:我们如何显示磁盘上存在的所有文件,无论它们是否在索引中,并且不会被忽略?
似乎没有与git check-ignore 直接相反的方法,它允许处理带有换行符、制表符等的不寻常(但可能的)文件名。
一些 Git 命令会生成可用于此任务的空分隔输出(带有-z),但涉及解析。
通过一些 Git 命令,我们可以获得一些以空值分隔的文件名列表,我们可以通过交叉/差异来获得相同的效果,但这需要相当复杂的解析,这并不容易(也许不可能做到?)以便携式方式使用 Shell、AWK 或 SED。
【问题讨论】:
-
我了解您的实际问题在标题中,但您的问题主体讨论了有关您找到的特定实现的一些技术点。您能否在帖子正文中说出您的完整问题?
-
更准确地说:您是否正在寻找一种“列出所有未忽略的文件”的方法?还是您在解析您选择的命令的输出时寻求帮助?如果我阅读了您的问题的标题、问题的主体以及您作为插图发布的代码,我会看到三种不同的意图...... :)
-
您看到的三种不同意图是什么?
-
title : 你想列出不被忽略的文件;正文:您寻找 awk 或 sed 的特定标志来解析以
\0分隔的多行字段,并可能暗示您的文件名中包含非常奇怪的字符('\n'?);代码:不知何故,您还需要不列出列为--deleted的文件 -
问题正文提供了背景信息。问题的标题就是问题。当然,这是一个密集的问题。在问题主体中,讨论了两种可能的解决方案——但都需要解析带有
\0的内容。解析困难与需要文件列表有关。 Sed 或 Awk 没有可移植的标志来解析\0。
标签: javascript git shell