Ruby/Git

授权协议 MIT
开发语言 Ruby
所属分类 服务器软件、 版本控制系统
软件类型 开源软件
地区 不详
投 递 者 鞠隐水
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Ruby/Git 是一个 Ruby 库可用来创建、操作 Git 资料库。它是通过封装了系统命令调用的方式实现的。

示例代码:

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
  • 在生成pod模板库是发现一个错误导致模板库生成错误: .rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require’: cannot load such file – colored2 (LoadError) 输入上面提示的colored2的两条gem命令即可解决问题 $ sudo

  • git clone到本地的项目,如果远程仓库更新,需要将更新取回本地,并与本地的分支合并。有两种命令可以做到: git fetch git pull 这里主要是解决fork的远程项目更新之后,如何将最新版与本地合并。不涉及到多人协作开发。 首先要将远程主机关联,需要用到git remote命令。 git remote git remote 用于管理主机名。-v可以查看主机网址。 $ git rem

  • 需求是本地开发分支develop推到远程仓库后自动部署测试服务器。 看很多文章,讲的非常复杂。都没讲清楚架构情况。 我们的架构是,多台本地开发机器,一台服务器,服务器上跑着测试程序和gitlab。 这边文章解决的是测试端和git远程仓库在一台机器上的情况,如果是测试程序和gitlab各自一台服务器,那比较麻烦了。 1.找到项目对应的hooks文件夹 /var/opt/gitlab/git-data

  • 欢迎访问我的个人博客网站:http://www.yanmin99.com/ GitLab 升级 502问题的解决 Error executing action run on resource ‘ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]’ 1、异常信息 resolving cookbooks for r

  • 一、GIT安装及使用说明 1、不同系统安装git及设置 yum install git #centos apt-get install git #ubuntu #mac 安装需要两步如下: homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install

  • 我的系统是mac,然后今天在安装eventmachine的时候发现的报了错误,安装命令为: sudo gem install eventmachine -v '1.2.7' 错误信息为: Building native extensions. This could take a while... ERROR: Error installing eventmachine: ERROR: Fa

  • #!/usr/bin/ruby  #coding=utf-8 #执行脚本,输入git链接和需要统计的版本范围,就可得到此范围内每个author修改过的代码行数author_count Encoding.default_external = 'UTF-8' #获取当前路径并删掉换行符 path_prev = `echo %cd%`.chomp! #puts "#{path_prev}" #输入git

  • 最近开始接触Ruby和Rails的开发,个人是一个疯狂迷恋编写代码边format的编写方式,看到摆的凌乱的代码就会有一种无法言说的焦躁感,同样的习惯被我带到了Ruby的学习过程中,可是应该如何确定Ruby源文件的format呢? GitHub公布了他们的答案: [b]Ruby Style Guide:[/b]https://github.com/bbatsov/ruby-style-guide [

  • 修改ssh 的config配置 1.terminal 打开ssh的根目录,我这里是/Users/tianxiao/.ssh/ cd /Users/tianxiao/.ssh/ 2.配置config 将端口号改成22 vi config Host github.com User xxxx@gmail.com Port 22 Hostname ssh.github.com identityfile ~

  • 我记得每一年技术部年会都会由老大说出一个技术主题,之前有服务化、模块化、工具化、数据化等等等等,今年的主题是全栈。遥想当年,在供职过的两家公司什么抗机器、装机架;什么安装系统、加固、搭建Web或任务应用的前后端环境、打包发布、网络配置;什么JavaScript、CSS、VB、.NET、PHP、JAVA等等语言;什么Mootools、JQuery、Ext、Lucene、Solr、Hibernate、

  •           Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java 平台)、Iron

 相关资料
  • Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言 目录结构 /usr/ruby: Ruby 二进制命令路径 /usr/lib/ruby: Ruby 扩展、依赖等目录

  • Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby 体现了表达的一致性和简单性,它不仅是一门编程语言,更是表达想法的一种简练方式。 Ruby的作者于1993年2月24日开始编辑Ruby,直至1995年12月才正式公开发布于fj(新聞群組)。之所以称为Ruby,是因为Perl的发音与6月的诞生石pearl(珍珠)相同,因此Ruby以7月的诞生石ruby(红宝石)命名。 Ruby明显比其他类似

  • Ruby++ 是一个调用 Ruby API 的 C++ 接口。 It supports the development of an extension-library and Ruby embedded program.

  • cPanel的这个接口允许您创建和安装Ruby on Rails应用程序。 如果您开发了Ruby on Rails应用程序,则可以使用此界面将其部署到服务器。 要创建Ruby on Rails应用程序,请按照下列步骤操作 - Step 1 - 单击cPanel Home的Software Section下的Ruby on Rails。 Step 2 - 在Ruby on Rails接口中,您将找到

  • 主要内容:Gem,gem 包的构建,修改国内源RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。 RubyGems 旨在方便地管理 gem 安装的工具,以及用于分发 gem 的服务器。这类似于 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pip。 RubyGems大约创建于2003年11月,从Ruby 1.9版起成为Ruby标准库的

  • 主要内容:环境配置,使用 Ruby 解析 JSON,input.json 文件,实例本章节我们将为大家介绍如何使用 Ruby 语言来编码和解码 JSON 对象。 环境配置 在使用 Ruby 编码或解码 JSON 数据前,我们需要先安装 Ruby JSON 模块。在安装该模块前你需要先安装 Ruby gem,我们使用 Ruby gem 安装 JSON 模块。 但是,如果你使用的是最新版本的 Ruby,可能已经安装了 gem,解析来我们就可以使用以下命令来安装Ruby JSON 模块