0
我想比較兩個分支並顯示一個存在但不是另一個的提交。這從命令行git log --pretty=oneline branch_b ^branch_a --no-merges
工作,並給了我我想要的,但我想模擬同樣的事情在沙礫獲得使用對象而不是字符串。這是否可能在沙礫?Ruby Grit:找到兩個分支之間的提交
我想比較兩個分支並顯示一個存在但不是另一個的提交。這從命令行git log --pretty=oneline branch_b ^branch_a --no-merges
工作,並給了我我想要的,但我想模擬同樣的事情在沙礫獲得使用對象而不是字符串。這是否可能在沙礫?Ruby Grit:找到兩個分支之間的提交
我覺得這樣的事情應該做的伎倆:
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] * " " }
我不知道砂礫什麼,但「表明,存在於一個的提交而不是其他」聽起來像什麼[' git cherry'](http://www.kernel.org/pub/software/scm/git/docs/git-cherry.html)。也許這會給你一些谷歌的東西... ... – MatrixFrog 2012-07-14 19:46:15