PHP: manipular git

php-logo

Si bien se puede usar exec o shell_exec para poder ejecutar comandos del servidor (en este caso git) desde scripts php, se encuentra con un detalle, que el usuario apache (http) no tiene permisos para poder manipular git, por lo tanto se necesita una configuración previa para poder ejecutar estas ordenes.

Por fortuna existe una libreria para hacer las cosas mas fáciles PHP Git Repo.

El uso es bastante sencillo, he aqui un ejemplo para poder hacer pull en el servidor, una vez descargado la libreria:

<?php 
 require_once dirname(__FILE__) . '/lib/PHPGit/Repository.php';

 $repo = new PHPGit_Repository('/home/user/public_html/project');
 $repo->git('pull origin master');
 echo 'OK';
?>

Se supone que git esta instalado y se tiene el repositorio en /home/user/public_html/project.

Más información:

https://github.com/ornicar/php-git-repo