This makes both objects and references peelable via the same interface, simplifying how to get to the wanted type.
3.8 KiB
References
pygit2.Repository.listall_reference_objects
pygit2.Repository.listall_references
pygit2.Repository.lookup_reference
Example:
>>> all_refs = repo.listall_references()
>>> master_ref = repo.lookup_reference("refs/heads/master")
>>> commit = master_ref.get_object() # or repo[master_ref.target]
The Reference type
pygit2.Reference
pygit2.Reference.name
pygit2.Reference.shorthand
pygit2.Reference.target
pygit2.Reference.type
pygit2.Reference.set_target
pygit2.Reference.delete
pygit2.Reference.rename
pygit2.Reference.resolve
pygit2.Reference.peel
pygit2.Reference.log
Example:
>>> branch = repository.lookup_reference("refs/heads/master")
>>> branch.target = another_commit.id
>>> committer = Signature('Cecil Committer', 'cecil@committers.tld')
>>> branch.log_append(another_commit.id, committer,
"changed branch target using pygit2")
This creates a reflog entry in git reflog master which
looks like:
7296b92 master@{10}: changed branch target using pygit2
In order to make an entry in git reflog, ie. the reflog
for HEAD, you have to get the Reference object for
HEAD and call log_append on that.
pygit2.Reference.get_object
The HEAD
Example. These two lines are equivalent:
>>> head = repo.lookup_reference('HEAD').resolve()
>>> head = repo.head
pygit2.Repository.head
pygit2.Repository.head_is_detached
pygit2.Repository.head_is_unborn
Branches
Branches inherit from References, and additionally provide specialized accessors for some unique features.
pygit2.Repository.listall_branches
pygit2.Repository.lookup_branch
pygit2.Repository.create_branch
Example:
>>> local_branches = repo.listall_branches()
>>> # equivalent to
>>> local_branches = repo.listall_branches(pygit2.GIT_BRANCH_LOCAL)
>>> remote_branches = repo.listall_branches(pygit2.GIT_BRANCH_REMOTE)
>>> all_branches = repo.listall_branches(pygit2.GIT_BRANCH_REMOTE |
pygit2.GIT_BRANCH_LOCAL)
>>> master_branch = repo.lookup_branch('master')
>>> # equivalent to
>>> master_branch = repo.lookup_branch('master',
pygit2.GIT_BRANCH_LOCAL)
>>> remote_branch = repo.lookup_branch('upstream/feature',
pygit2.GIT_BRANCH_REMOTE)
The Branch type
pygit2.Branch.branch_name
pygit2.Branch.remote_name
pygit2.Branch.upstream
pygit2.Branch.upstream_name
pygit2.Branch.rename
pygit2.Branch.delete
pygit2.Branch.is_head
The reference log
Example:
>>> head = repo.lookup_reference('refs/heads/master')
>>> for entry in head.log():
... print(entry.message)
pygit2.RefLogEntry
Notes
pygit2.Repository.notes
pygit2.Repository.create_note
pygit2.Repository.lookup_note
The Note type
pygit2.Note.annotated_id
pygit2.Note.id
pygit2.Note.message
pygit2.Note.remove