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

时间:2011-02-09 17:01:55

标签: ruby commit show grit

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

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用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!

答案 1 :(得分:0)

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

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