1

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

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

但是我如何通过 Ruby 中的 Grit 来做到这一点?

4

2 回答 2

1

您可以使用which 返回实例your_commit.diffs数组。有和属性。Grit::DiffGrit::Diffa_pathb_path

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

paths = [];
@commit.diffs.each do |diff|
    paths += [diff.a_path, diff.b_path]
end
paths.uniq!
于 2011-02-09T20:43:25.570 回答
0

由于 Grit 的 git 模块使用 method_missing 进行脱壳,您也可以尝试:

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

于 2012-04-11T21:41:26.387 回答