我正在寻找类似于以下命令的命令,但这总是从存储库根列出,而不是当前的工作目录:
git ls-files --cached --others --exclude-standard
如果可能的话,我不想使用bash/batch,因为我正在寻找跨平台解决方案。
如果不是git别名,则可以在2个命令中完成:
git ls-files $(git rev-parse --show-toplevel)
如果您可以创建一个别名,
git config --global alias.ls-files-root "! git ls-files"
那么您应该能够做
git ls-files-root --cached --others --exclude-standard
说明:以'!'开头的别名。从顶级目录中执行为shell命令。相关:有没有一种方法可以在一个命令中获取git root目录?
命令期望Pathspecs作为ARG通常允许引导:/
表示工作树的根。因此您可以使用:
git ls-files --full-name :/
这比与git rev-parse --show-toplevel
输出结合使用要好,因为后者不允许您在存储库中找到特定文件。IE。这是:git ls-files -- $(git rev-parse --show-toplevel)"*filename.c"
行不通,但是此git ls-files ":/*filename.c"
可以。而且也很短。