composer update
This commit is contained in:
91
vendor/gitonomy/gitlib/doc/api/references.rst
vendored
Normal file
91
vendor/gitonomy/gitlib/doc/api/references.rst
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
Tags and branches
|
||||
=================
|
||||
|
||||
Accessing tags and branches
|
||||
---------------------------
|
||||
|
||||
With *gitlib*, you can access them via the *ReferenceBag* object. To get this
|
||||
object from a *Repository*, use the *getReferences* method:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$references = $repository->getReferences();
|
||||
|
||||
First, you can test existence of tags and branches like this:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
if ($references->hasBranch('master') && $references->hasTag('0.1')) {
|
||||
echo "Good start!";
|
||||
}
|
||||
|
||||
If you want to access all branches or all tags:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$branches = $references->getBranches();
|
||||
$localBranches = $references->getLocalBranches();
|
||||
$remoteBranches = $references->getRemoteBranches();
|
||||
$tags = $references->getTags();
|
||||
$all = $references->getAll();
|
||||
|
||||
To get a given branch or tag, call *getBranch* or *getTag* on the
|
||||
*ReferenceBag*. Those methods return *Branch* and *Tag* objects:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$master = $references->getBranch('master');
|
||||
$feat123 = $references->getLocalBranch('feat123');
|
||||
$feat456 = $references->getRemoteBranch('origin/feat456');
|
||||
$v0_1 = $references->getTag('0.1');
|
||||
|
||||
If the reference cannot be resolved, a *ReferenceNotFoundException* will be
|
||||
thrown.
|
||||
|
||||
On each of those objects, you can access those informations:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Get the associated commit
|
||||
$commit = $master->getCommit();
|
||||
|
||||
// Get the commit hash
|
||||
$hash = $master->getCommitHash();
|
||||
|
||||
// Get the last modification
|
||||
$lastModification = $master->getLastModification();
|
||||
|
||||
Create and delete reference
|
||||
---------------------------
|
||||
|
||||
You can create new tags and branches on repository, using helper methods
|
||||
on ReferenceBag object:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// create a branch
|
||||
$references = $repository->getReferences();
|
||||
$branch = $references->createBranch('foobar', 'a8b7e4...'); // commit to reference
|
||||
|
||||
// create a tag
|
||||
$references = $repository->getReferences();
|
||||
$tag = $references->createTag('0.3', 'a8b7e4...'); // commit to reference
|
||||
|
||||
// delete a branch or a tag
|
||||
$branch->delete();
|
||||
|
||||
Resolution from a commit
|
||||
------------------------
|
||||
|
||||
To resolve a branch or a commit from a commit, you can use the *resolveTags*
|
||||
and *resolveBranches* methods on it:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$branches = $references->resolveBranches($commit);
|
||||
$tags = $references->resolveTags($commit);
|
||||
|
||||
// Resolve branches and tags
|
||||
$all = $references->resolve($commit);
|
||||
|
||||
You can pass a *Commit* object or a hash to the method, gitlib will handle it.
|
Reference in New Issue
Block a user