Git-PHP
21. srpna 2013
Třída pro volání git
ovských příkazů z PHP nad daným
repozitářem.
Třída nabízí základní operace pro práci se soubory, commitování, merge,… Základní použití může vypadat následovně:
<?php
// vytvoříme objekt repozitáře
$repo = new Cz\Git\GitRepository('/path/to/repo');
// vytvoříme v repozitáři nový soubor
$filename = '/path/to/repo/first.txt';
file_put_contents($filename, "Lorem ipsum\ndolor\nsit amet");
// přidáme soubor do commitu
$repo->addFile($filename);
// a změnu commitneme
$repo->commit('init commit');
Práce se soubory
<?php
// přidáme soubory do commitu
$repo->addFile('file.txt');
$repo->addFile('file1.txt', 'file2.txt');
$repo->addFile(array('file3.txt', 'file4.txt'));
// přejmenujeme soubor v repozitáři
$repo->renameFile('old.txt', 'new.txt');
$repo->renameFile(array(
'old1.txt' => 'new1.txt',
'old2.txt' => 'new2.txt',
));
// odstraníme soubor z repozitáře
// seznam souborů můžeme předat stejně jako u metody `addFile`
$repo->removeFile('file1.txt');
Samozřejmě je
poté potřeba takto provedené změny commitnout
($repo->commit('message')
).
Tagy
<?php
// získáme seznam všech tagů v repozitáři
$repo->getTags();
// vytvoříme tag
$repo->createTag('new-tag');
// přejmenujeme tag
$repo->renameTag('new-tag', 'v1.0.0');
// vymažeme tag
$repo->removeTag('v1.0.0');
Větve
<?php
// získáme seznam všech větví v repozitáři
$repo->getBranches();
// získáme jméno aktuální větve
$repo->getCurrentBranchName();
// vytvoříme větev
$repo->createBranch('develop');
// vytvoříme větev a rovnou provedeme checkout
$repo->createBranch('new-develop', TRUE);
// odstraníme větev
$repo->removeBranch('new-develop');
Další operace
<?php
// jsou v repozitáři nějaké změny?
$repo->isChanges();
// provedeme commit
$repo->commit('commit message');
// volitelně můžeme předat další parametry,
// viz manuál k příkazu `git commit`
$repo->commit('commit message', array(
'author' => '<author>', // přepíše autora commitu
));
// provedeme merge
// opět můžeme druhým parametrem předat další parametry
$repo->merge('hot fix', $mergeParams);
// checkout na jinou větev, tag, commit
$repo->checkout('master');
Vytvoření nového repozitáře
Pomocí třídy můžeme i inicializovat nový repozitář,
stačí zavolat statickou metodu init
a předat jí cestu do
adresáře, kde chceme repozitář inicializovat. Metoda nám vrátí nový
objekt, který reprezentuje nově vzniklý repozitář. Poté už můžeme
s repozitářem normálně pracovat.
<?php
$newRepo = Cz\Git\GitRepository::init('/path/to/new-repo');
$newRepo->addFile(/* file */);
$newRepo->commit(/* message */);
- Repozitář na GitHubu
- Packagist:
czproject/git-php
- API dokumentace
- Licence: New BSD License
Líbí se vám tato stránka?