References
- >>> all_refs = list(repo.references)
- >>> master_ref = repo.lookup_reference("refs/heads/master")
- >>> commit = master_ref.peel() # or repo[master_ref.target]
- # Create a reference
- >>> ref = repo.references.create('refs/tags/version1', LAST_COMMIT)
- # Delete a reference
- >>> repo.references.delete('refs/tags/version1')
Functions
Check if the passed string is a valid reference name.
Example:
- >>> from pygit2 import reference_is_valid_name>>> reference_is_valid_name("refs/heads/master")True>>> reference_is_valid_name("HEAD")True>>> reference_is_valid_name("refs/heads/..")False
The Reference type
- class
pygit2.
Reference
Reference.
The full name of the reference.
The full name of the reference (Bytes).
The shorthand “human-readable” name of the reference.
The shorthand “human-readable” name of the reference (Bytes).
The reference target: If direct the value will be an Oid object, if itis symbolic it will be an string with the full name of the targetreference.
Type, either GIT_REF_OID or GIT_REF_SYMBOLIC.
Return self==value.
Return self!=value.
- Set the target of this reference.
Update the reference using the given signature and message.These will be used to fill the reflog entry which will be createdas a result of this update.
Parameters:
- target
- The new target for this reference
- message
- Message to use for the reflog.
Reference.
rename
(new_name)Rename the reference.
Resolve a symbolic reference and return a direct reference.
- Retrieve an object of the given type by recursive peeling.
If no type is provided, the first non-tag object will be returned.
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
, youhave to get the Reference object for HEAD
and call log_append
onthat.
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.
A repository’s HEAD is detached when it points directly to a commitinstead of a branch.
- An unborn branch is one named from HEAD but which doesn’t exist in therefs namespace, because it doesn’t have any commit to point to.
Branches
Repository.
branches
Branches inherit from References, and additionally provide specializedaccessors for some unique features.
class
pygit2.repository.
Branches
(repository, flag=3, commit=None)
- >>> # Listing all branches
- >>> branches_list = list(repo.branches)
- >>> # Local only
- >>> local_branches = list(repo.branches.local)
- >>> # Remote only
- >>> remote_branches = list(repo.branches.remote)
- >>> # Get a branch
- >>> branch = repo.branches['master']
- >>> other_branch = repo.branches['does-not-exist'] # Will raise a KeyError
- >>> other_branch = repo.branches.get('does-not-exist') # Returns None
- >>> remote_branch = repo.branches.remote['upstream/feature']
- >>> # Create a local branch
- >>> new_branch = repo.branches.local.create('new-branch')
- >>> And delete it
- >>> repo.branches.delete('new-branch')
The Branch type
Branch.
branch_name
The name of the local or remote branch.
The name of the remote set to be the upstream of this branch.
The branch’s upstream branch or None if this branch does not have an upstream set. Set to None to unset the upstream configuration.
The name of the reference set to be the upstream of this one
Move/rename an existing local branch reference. The new branch name will be checked for validity.Returns the new branch.
Delete this branch. It will no longer be valid!
True if HEAD points at the branch, False otherwise.
- True if branch is checked out by any repo connected to the current one, False otherwise.
The reference log
Example:
- >>> head = repo.references.get('refs/heads/master') # Returns None if not found
- >>> # Almost equivalent to
- >>> head = repo.references['refs/heads/master'] # Raises KeyError if not found
- >>> for entry in head.log():
- ... print(entry.message)
Notes
Repository.
notes
()Repository.
createnote
(_message, author, committer, annotated_id[, ref, force]) → OidCreate a new note for an object, return its SHA-ID.If no ref is given ‘refs/notes/commits’ will be used.
- Lookup a note for an annotated object in a repository.