Ruby Grit:在2个分支之间找到提交

时间:2012-07-13 23:18:40

标签: ruby git grit

我想比较2个分支并显示存在于一个而不是另一个的提交。这可以从命令行git log --pretty=oneline branch_b ^branch_a --no-merges开始,并提供我想要的东西,但我想在Grit中模拟相同的东西,以获得对象而不是字符串。这可能在Grit吗?

1 个答案:

答案 0 :(得分:0)

我觉得这样的事情可以解决问题:

require 'grit'
repo = Grit::Repo.new(".")
repo.commits_between("branch_b", "branch_a")

请参阅http://grit.rubyforge.org/classes/Grit/Repo.html#M000227了解doc(http://grit.rubyforge.org/了解完整文档)。

这将为您提供数组中的提交对象,但它不会像git命令那样格式化输出。此外,它不排除合并提交。

为了获得格式化输出,请尝试以下方法:

puts repo.commits_between("branch_b", "branch_a").map { |c| ["*", c.id_abbrev, c.authored_date.to_date, c.short_message] * " " }