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

发布于 2024-10-16 12:54:12 字数 142 浏览 3 评论 0原文

我想要一份受 git 中某个提交影响的文件列表。通过命令行,我可以使用以下命令执行此操作:

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

但是如何通过 Ruby 中的 Grit 执行此操作?

I want a list of files affected by a certain commit in git. Through the command line, I can do this with:

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

But how can I do this through Grit in Ruby?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

踏雪无痕 2024-10-23 12:54:13

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

You can use your_commit.diffs which returns an array of Grit::Diff instances. Grit::Diff has a_path and b_path properties.

Some (untested) example code:

paths = [];
@commit.diffs.each do |diff|
    paths += [diff.a_path, diff.b_path]
end
paths.uniq!
呆° 2024-10-23 12:54:13

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

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

Since Grit's git module employs method_missing to shell out, you can also try:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文