public static function create(Repository $repository, string $name, string $startPoint = null)
    {
        $repository
            ->getCaller()
            ->execute(BranchCommand::getInstance($repository)->create($name, $startPoint));

        return new self($repository, $name);
    }