共计 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 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!