对于list all the files in a commit,可以用途:
git show --pretty="" --name-only bd61ad98
但是,如果我想进一步缩小列表范围,只显示文件夹中的文件,我应该怎么做?文件不只是在一个文件夹中,而是:
- 在几个文件夹中?
- 不在文件夹里
- 不在几个文件夹里
对于list all the files in a commit,可以用途:
git show --pretty="" --name-only bd61ad98
但是,如果我想进一步缩小列表范围,只显示文件夹中的文件,我应该怎么做?文件不只是在一个文件夹中,而是:
2条答案
按热度按时间3mpgtkmj1#
git ls-tree $commit:$path
按要求回答了您的问题,但我认为您是在该文件夹中 * 更改 * 的所有文件之后。git diff-tree -m $commit{~,}:$path
,如果需要,可以使用--name-status
或--name-only
,或者如果您希望列出完整路径而不是相对路径名称,则可以使用git diff-tree -m -r $commit{~,} -- $path
。对于多个路径,可以运行多个命令,也可以使用分隔形式
$commit{~,} -- $path
并给予多个路径;要获取除某些路径之外的所有路径,请参阅pathspec文档,可以使用":!$path"
sdnqo3pr2#
下面是一个使用
awk
的解决方案。在文件夹
foo
中:不在文件夹
foo
中:不在文件夹
foo
或bar
中: