git list在几次提交中更改了文件

mic*_*nko 5 git

我想获取符合某些条件的提交中更改的所有文件.所以我有以下内容:git log --grep=123,我需要将提交中更改的文件作为聚合列表进行更改,例如,如果文件在多次提交中更改,则应在结果列表中仅包含一次.这就像在togoise svn log window中选择几个提交一样,它列出了所选提交中更改的所有文件

kni*_*ttl 9

git log 不应该用于编写脚本,但这是一个快速的解决方案:

git log --grep=pattern --name-only --pretty=format:'' | sort -u
Run Code Online (Sandbox Code Playgroud)

  • 因为它是一种所谓的瓷器命令,用于人类用户消费,而管道命令则用于机器消耗(脚本).要正确编写上面的行,应该使用`git rev-list`和`git diff-tree`或者其他东西...... (2认同)

I15*_*159 5

不完全是答案,但如果您的条件是一致提交系列的开始和结束位置,git 已准备好提供帮助:

git diff --name-only <SHA, tag start> <SHA, tag end>