使用posh-git在PowerShell中我可以通过使用集合变量$ GitStatus列出工作树中已更改的所有项目。工作,我可以然而,当使用此列表在where子句来过滤目录,像这样
dir | where {$GitStatus.Working -contains $_.Name}
这个作品真的很好地显示了在指数改变,但还不是当前目录下的所有文件列表,我用-recurse指令运行这个相同的命令,这个文件不再匹配。我不明白为什么。有任何想法吗?
(注辣妹-GiTDir从同样的问题Scott Hanselman遭罪,这并不奇怪,因为他基本上采用相同的技术,展现了“混帐”栏)
编辑:这开始时,我注意到Posh-当我做递归目录列表时,GitDir Git列没有显示任何内容。能够快速查看“从这个文件夹中删除了哪些内容”是很有用的,我查看了Posh-GitDir如何获取其信息以尝试调试为什么它不适用于递归。
这是我的第一个想法。然而,名称字段似乎没有相对的一个 - 递归(是的,我知道这是另一个问题,即潜在的误报) – 2012-03-20 23:54:53
@TimJarvis - 名称属性只是文件的名称是,但$ GitStatus.Working会给你'path/file1',你会看到它是否有'file1'。所以它不会工作。 – manojlds 2012-03-20 23:58:13
mmm,是。 :-)现在我很困惑为什么它在当前目录中工作。在这种情况下,我正在比较路径/文件与文件。当然都不应该工作。但是这只是一个路径问题,因为我刚刚注意到,如果我更改为具有错误情况的目录,那也会打破它。 (posh-gitdir也有这个问题) – 2012-03-21 00:21:07