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

82次阅读
没有评论

共计 2717 个字符,预计需要花费 7 分钟才能阅读完成。

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

    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) -  true or false

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

 peel -  oid

  ??

 name
 canonical_name

  获取 reference 的名称

 type -  :symbolic or :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?-  true or false

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

 remote? -  true or false

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

 tag? -  true or false

  判断当前 reference 是否为标签

 log
 log? -  true or false -- 是否有 reflog
 reference.log #=  [ 
 # { 
 # :id_old =  nil, -- 改变之前的 oid
 # :id_new =   9d09060c850defbc7711d08b57def0d14e742f4e , -- 新 oid
 # :committer =  {:name =   Vicent Marti , :email =  { vicent@github.com}}, 
 # :message =   created reference  
 # }, ... ]

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? → true or false

  是否 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 #=   Release v0.16.0, codename  broken stuff

  获取 tag 的 message

 name #=   v0.16.0

  获取 tag 名

 tagger #=  {:email= tanoku@gmail.com , :time= Tue Jan 24 05:42:45 UTC 2012, :name= Vicent Mart\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 类怎么用”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计2717字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)