2012-07-13 34 views
0

我想比較兩個分支並顯示一個存在但不是另一個的提交。這從命令行git log --pretty=oneline branch_b ^branch_a --no-merges工作,並給了我我想要的,但我想模擬同樣的事情在沙礫獲得使用對象而不是字符串。這是否可能在沙礫?Ruby Grit:找到兩個分支之間的提交

+0

我不知道砂礫什麼,但「表明,存在於一個的提交而不是其他」聽起來像什麼[' git cherry'](http://www.kernel.org/pub/software/scm/git/docs/git-cherry.html)。也許這會給你一些谷歌的東西... ... – MatrixFrog 2012-07-14 19:46:15

回答

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/全DOC)。

這會給你提交一個數組中的對象,但它並不像git命令那樣格式化輸出。此外,它不排除合併提交。

爲了得到格式化輸出,嘗試這樣的事情:

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