Ruby/Git是一个Ruby库可用来创建、操作Git资料库。它是通过封装了系统命令调用的方式实现的。
示例代码:
require'rubygems'require'git'g=Git.ope(workig_dir,:log=>Logger.ew(STDOUT))g.idexg.idex.readable?g.idex.writable?g.repog.dirg.log#retursarrayofGit::Commitobjectsg.log.sice('2weeksago')g.log.betwee('v2.5','v2.6')g.log.each{|l|putsl.sha}g.gblob('v2.5:Makefile').log.sice('2weeksago')g.object('HEAD^').to_s#gitshow/gitrev-parseg.object('HEAD^').cotetsg.object('v2.5:Makefile').sizeg.object('v2.5:Makefile').shag.gtree(treeish)g.gblob(treeish)g.gcommit(treeish)commit=g.gcommit('1cc8667014381')commit.gtreecommit.paret.shacommit.parets.sizecommit.author.amecommit.author.emailcommit.author.date.strftime("%m-%d-%y")commit.committer.amecommit.date.strftime("%m-%d-%y")commit.messagetree=g.gtree("HEAD^{tree}")tree.blobstree.subtreestree.childre#blobsadsubtreesg.revparse('v2.5:Makefile')g.braches#retursGit::Brachobjectsg.braches.localg.braches.remoteg.braches[:master].gcommitg.braches['origi/master'].gcommitg.grep('hello')#impliesHEADg.blob('v2.5:Makefile').grep('hello')g.tag('v2.5').grep('hello','docs/')g.diff(commit1,commit2).sizeg.diff(commit1,commit2).statsg.gtree('v2.5').diff('v2.6').isertiosg.diff('gitsearch1','v2.5').path('lib/')g.diff('gitsearch1',@git.gtree('v2.5'))g.diff('gitsearch1','v2.5').path('docs/').patchg.gtree('v2.5').diff('v2.6').patchg.gtree('v2.5').diff('v2.6').eachdo|file_diff|putsfile_diff.pathputsfile_diff.patchputsfile_diff.blob(:src).cotetsedg.cofig('user.ame')#returs'ScottChaco'g.cofig#returswholecofighashg.tag#retursarrayofGit::Tagobjects
评论