在ruby / grit中,如何获取特定提交中更改的文件列表?

我想要一个受git中某个提交影响的文件列表。 通过命令行,我可以这样做:

git show –pretty =“format:” – name-only(sha)

但是我怎么能通过Ruby中的Grit来做到这一点?

您可以使用your_commit.diffs返回Grit::Diff实例的数组。 Grit::Diff具有a_pathb_path属性。

一些(未经测试的)示例代码:

 paths = []; @commit.diffs.each do |diff| paths += [diff.a_path, diff.b_path] end paths.uniq! 

由于Grit的git模块使用method_missing来shell,你也可以尝试:

grit.git.show({:pretty =>:format,:name_only => true},sha)

Interesting Posts