Skip to content

Innmind/Git

Repository files navigation

Git

Build Status codecov Type Coverage

Abstraction layer to manipulate local git repositories.

Feel free to submit a PR to add other git functionalities.

Installation

composer require innmind/git

Usage

use Innmind\Git\{
    Git,
    Repository\Remote\Name,
    Repository\Remote\Url,
    Revision\Branch,
};
use Innmind\OperatingSystem\Factory;
use Innmind\Url\Path;

$os = Factory::build();
$git = Git::of($os->control(), $os->clock());
$repository = $git
    ->repository(Path::of('/somewhere/on/the/local/machine'))
    ->unwrap();
$_ = $repository
    ->init()
    ->unwrap();
$remotes = $repository->remotes();
$remotes
    ->add(Name::of('origin'), Url::of('git@github.com:Vendor/Repo.git'))
    ->unwrap();
$remotes
    ->get(Name::of('origin'))
    ->push(Branch::of('master'))
    ->unwrap();
$repository
    ->branches()
    ->new(Branch::of('develop'))
    ->unwrap();
$repository
    ->checkout()
    ->revision(Branch::of('develop'))
    ->unwrap();

This example initialize a local git repository, declare a github repository as its remote and finally checkout the new branch develop.

The offered functionalities goes beyond this single example, check the classes' api to discover all of them.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages