Working copy is the folder associated to a git repository. In gitlib, you can access this object using the getWorkingCopy on a Repository object:
$repo = new Repository('/path/to/working-dir');
$wc = $repo->getWorkingCopy();
You can checkout any revision using checkout method. You can also pass
a second argument, which will be passed as argument with -b
:
// git checkout master
$wc->checkout('master');
// git checkout origin/master -b master
$wc->checkout('origin/master', 'master');
You can also pass a Reference or a Commit.
You can get a diff of modifications pending in staging area. To get the
Diff
object, call method getDiffStaged()
:
$diff = $wc->getDiffStaged();
You can get pending modifications on tracked files by calling method
getDiffPending()
:
$diff = $wc->getDiffPending();