我一直在试图找出如何获取git repo中所有文件的列表,包括子模块中包含的文件.目前,git ls-files将提供顶级子模块目录,但不提供子模块中包含的文件.在进一步调查中,我发现使用git submodule,你可以递归地找到所有的子模块然后去git ls-files使用:
git submodule --quiet foreach --recursive "git ls-files"
Run Code Online (Sandbox Code Playgroud)
唯一的问题是结果是来自子模块的路径,但我需要来自repo的完整路径.所以对于以下内容
例如/ some/path/to/gitrepo/source/submodule/[file1,file2]
我看到的是:
file1
file2
Run Code Online (Sandbox Code Playgroud)
我想看到的是:
source/submodule/file1
source/submodule/file2
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?从文档中,有一些预定义的变量($ name,$ path,$ sha1和$ toplevel),但我不知道如何使用它们来获得所需的结果.