意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Rugged::Reference和Rugged::Branch类怎么用

来源:恒创科技 编辑:恒创科技编辑部
2024-02-01 20:22:59

本篇内容主要讲解“Rugged::Reference和Rugged::Branch类怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Rugged::Reference和Rugged::Branch类怎么用”吧!

Rugged::Reference类

Reference可以是Branch,Remote Branch, Tag, AnnotationTag或者指向其他Reference, 每个Reference都指向一个target,该target可以是一个Reference,或者AnnotationTag,此时Reference.type=:symbolic, 如果target是一个Commit,则Reference.type = :direct


Rugged::Reference和Rugged::Branch类怎么用

a)获取Rugged::Reference对象

refs=repo.references#Rugged::ReferenceCollection
ref=refs["ref_name"]
refs.each#迭代
refs.each_name#按名字迭代
refs.exist?(name)#是否存在
refs.exists?(name)#是否存在

b)基本方法

valid_name?(ref_name)->trueorfalse

检查reference name 是否well-formed(良构)

peel->oid

??

name
canonical_name

获取reference的名称

type->:symbolicor:direct

获取reference的类型

target
ref1.type#=>:symbolic
ref.1.target=>#<Rugged::Reference...>
ref1.target_id#=>"refs/heads/master"
ref2.type#=>:direct
ref2.target#=>#<Rugged::Commit...>
ref2.target_id#=>"de5ba987198bcf2518885f0fc1350e5172cded78"

获获取指向的target和target_id。如果reference是一个symbolic reference,则返回target reference对象。如果reference是一个直接的reference,则target对象。

resolve->peeled_ref
r1.type#=>:symbolic
r1.name#=>'HEAD'
r1.target#=>'refs/heads/master'
r2=r1.resolve#=>#<Rugged::Reference:0x401b3948>
r2.target#=>'9d09060c850defbc7711d08b57def0d14e742f4e'

获取symbolic reference指向的target reference

branch?->trueorfalse

判断当前reference是否为本地的分支

remote?->trueorfalse

判断当前reference是否是远程分支

tag?->trueorfalse

判断当前reference是否为标签

log
log?->trueorfalse--是否有reflog
reference.log#=>[
#{
#:id_old=>nil,--改变之前的oid
#:id_new=>'9d09060c850defbc7711d08b57def0d14e742f4e',--新oid
#:committer=>{:name=>'VicentMarti',:email=>{'vicent@github.com'}},
#:message=>'createdreference'
#},...]

2. Rugged::Branch类(继承Rugged::Reference)

a)获取Rugged::Branch对象

branches=repo.branches#Rugged::BranchCollection
branch=branches["branch_name"]
branch.each
brach.each_name

b)基本方法

==(other)

判断两个分支是否相等

head?→trueorfalse

是否HEAD指向当前分支

name→string

获取分支名

remote_name→string

获取分支所属的远程名

remote()

获取当前分支的所属远程

upstream→branch
upstream=branch

获取和设置远程的跟踪branch, 参数branch为Rugged::Branch或这Rugged::Reference

3. Rugged::Tag类(继承Rugged::Reference)

a)获取Rugged::Tag对象

tags=repo.tags#Rugged::TagCollection
tag=tags["tag_name"]
tags.each
tags.each_name

b)基本方法

message#=>"Releasev0.16.0,codename'brokenstuff'"

获取tag的message

name#=>"v0.16.0"

获取tag名

tagger#=>{:email=>"tanoku@gmail.com",:time=>TueJan2405:42:45UTC2012,:name=>"VicentMart\303\255"}

获取tag的author signature(签名)

target_oid#=>"2cb831a8aea28b2c1b9c63385585b864e4d3bad1"
target_id#=>"2cb831a8aea28b2c1b9c63385585b864e4d3bad1"

获取指向对象的oid

type#=>:blob,:commit,:tree,:tag

获取指向对象的类型

target->git_object

获取tag指向的target

到此,相信大家对“Rugged::Reference和Rugged::Branch类怎么用”有了更深的了解,不妨来实际操作一番吧!这里是恒创网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

上一篇: Mesos如何理解 下一篇: 手机怎么远程登录云服务器?