References

Repository.listall_references() → [str, ...]

Return a list with all the references in the repository.

Repository.lookup_reference(name) → Reference

Lookup a reference by its name in a repository.

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

Reference.name

The full name of the reference.

Reference.shorthand

The shorthand “human-readable” name of the reference.

Reference.target

The reference target: If direct the value will be an Oid object, if it is symbolic it will be an string with the full name of the target reference.

Reference.type

Type, either GIT_REF_OID or GIT_REF_SYMBOLIC.

Reference.delete()

Delete this reference. It will no longer be valid!

Reference.rename(new_name)

Rename the reference.

Reference.resolve() → Reference

Resolve a symbolic reference and return a direct reference.

Reference.log() → RefLogIter

Retrieves the current reference log.

Reference.log_append(oid, committer, message[, encoding])

Append a reflog entry to the reference. If the oid is None then keep the current reference’s oid. The message parameter may be None.

Reference.get_object() → object

Retrieves the object the current reference is pointing to.

The HEAD

Example. These two lines are equivalent:

>>> head = repo.lookup_reference('HEAD').resolve()
>>> head = repo.head
Repository.head

Current head reference of the repository.

Repository.head_is_detached

A repository’s HEAD is detached when it points directly to a commit instead of a branch.

Repository.head_is_unborn

An unborn branch is one named from HEAD but which doesn’t exist in the refs namespace, because it doesn’t have any commit to point to.

Branches

Branches inherit from References, and additionally provide spetialized accessors for some unique features.

Repository.listall_branches([flags]) → [str, ...]

Return a tuple with all the branches in the repository.

Repository.lookup_branch(branch_name[, branch_type]) → Object

Returns the Git reference for the given branch name (local or remote).

Repository.create_branch(name, commit, force=False) → bytes

Create a new branch “name” which points to a commit.

Arguments:

force
If True branches will be overridden, otherwise (the default) an exception is raised.

Examples:

repo.create_branch('foo', repo.head.hex, force=False)

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

Branch.branch_name

The name of the local or remote branch.

Branch.remote_name

The name of the remote that the remote tracking branch belongs to.

Branch.upstream

The branch supporting the remote tracking branch or None if this is not a remote tracking branch. Set to None to unset.

Branch.upstream_name

The name of the reference supporting the remote tracking branch.

Branch.rename(name, force=False)

Move/rename an existing local branch reference. The new branch name will be checked for validity. Returns the new branch.

Branch.delete()

Delete this branch. It will no longer be valid!

Branch.is_head()

True if HEAD points at the branch, False otherwise.

The reference log

Example:

>>> head = repo.lookup_reference('refs/heads/master')
>>> for entry in head.log():
...     print(entry.message)
RefLogEntry.oid_new

New oid.

RefLogEntry.oid_old

Old oid.

RefLogEntry.message

Message.

RefLogEntry.committer

Committer.

Notes

Repository.notes()
Repository.create_note(message, author, committer, annotated_id[, ref, force]) → Oid

Create a new note for an object, return its SHA-ID.If no ref is given ‘refs/notes/commits’ will be used.

Repository.lookup_note(annotated_id[, ref]) → Note

Lookup a note for an annotated object in a repository.

The Note type

Note.annotated_id

id of the annotated object.

Note.oid

Gets the id of the blob containing the note message

Note.message

Gets message of the note

Note.remove()

Removes a note for an annotated object

Table Of Contents

Previous topic

Git Objects

Next topic

Revision parsing

This Page