<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Ruby/Git

          聯(lián)合創(chuàng)作 · 2023-10-01 12:10

          Ruby/Git 是一個 Ruby 庫可用來創(chuàng)建、操作 Git 資料庫。它是通過封裝了系統(tǒng)命令調(diào)用的方式實現(xiàn)的。

          示例代碼:

          require 'rubygems'
          require 'git'
          
          g = Git.open(working_dir, :log => Logger.new(STDOUT))
          
          g.index
          g.index.readable?
          g.index.writable?
          g.repo
          g.dir
          
          g.log   # returns array of Git::Commit objects
          g.log.since('2 weeks ago')
          g.log.between('v2.5', 'v2.6')
          g.log.each {|l| puts l.sha }
          g.gblob('v2.5:Makefile').log.since('2 weeks ago')
          
          g.object('HEAD^').to_s  # git show / git rev-parse
          g.object('HEAD^').contents
          g.object('v2.5:Makefile').size
          g.object('v2.5:Makefile').sha
          
          g.gtree(treeish)
          g.gblob(treeish)
          g.gcommit(treeish)
          
          
          commit = g.gcommit('1cc8667014381')
          
          commit.gtree
          commit.parent.sha
          commit.parents.size
          commit.author.name
          commit.author.email
          commit.author.date.strftime("%m-%d-%y")
          commit.committer.name
          commit.date.strftime("%m-%d-%y")
          commit.message
          
          tree = g.gtree("HEAD^{tree}")
          
          tree.blobs
          tree.subtrees
          tree.children # blobs and subtrees
          
          g.revparse('v2.5:Makefile')
          
          g.branches # returns Git::Branch objects
          g.branches.local
          g.branches.remote
          g.branches[:master].gcommit
          g.branches['origin/master'].gcommit
          
          g.grep('hello')  # implies HEAD
          g.blob('v2.5:Makefile').grep('hello')
          g.tag('v2.5').grep('hello', 'docs/')
          
          g.diff(commit1, commit2).size
          g.diff(commit1, commit2).stats
          g.gtree('v2.5').diff('v2.6').insertions
          g.diff('gitsearch1', 'v2.5').path('lib/')
          g.diff('gitsearch1', @git.gtree('v2.5'))
          g.diff('gitsearch1', 'v2.5').path('docs/').patch
          g.gtree('v2.5').diff('v2.6').patch
          
          g.gtree('v2.5').diff('v2.6').each do |file_diff|
             puts file_diff.path
             puts file_diff.patch
             puts file_diff.blob(:src).contents
          end
          
          g.config('user.name')  # returns 'Scott Chacon'
          g.config # returns whole config hash
          
          g.tag # returns array of Git::Tag objects
          瀏覽 18
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲无码www | 黄片无遮挡 | 久久另类TS人妖一区二区免费 | 欧美日本一区 | 久久毛片视频 |