PHPackages                             hyn/git-helpers - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. hyn/git-helpers

ActiveLibrary[CLI &amp; Console](/categories/cli)

hyn/git-helpers
===============

Easy helper tool for managing several Git repositories at once.

0.2.0(9y ago)942[2 issues](https://github.com/hyn/git-helpers/issues)MITPHPPHP &gt;=5.5.9

Since Feb 11Pushed 8y ago2 watchersCompare

[ Source](https://github.com/hyn/git-helpers)[ Packagist](https://packagist.org/packages/hyn/git-helpers)[ RSS](/packages/hyn-git-helpers/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (2)Versions (12)Used By (0)

hyn/git-helpers
===============

[](#hyngit-helpers)

This package is meant to be used in your terminal. And allows working with lots of subdirectories containing git repositories.

Installation
------------

[](#installation)

```
composer global require hyn/git-helpers
```

> Make sure to place the ~/.composer/vendor/bin directory in your PATH so the gh executable can be located by your system.

Usage
-----

[](#usage)

You can now globally use the command `gh`, eg:

```
gh status
```

Use cases
---------

[](#use-cases)

This package is especially helpful in case you manage your development packages with a [repository path configuration](https://getcomposer.org/doc/05-repositories.md#path) in composer.

If you create a workbench directory containing all your development packages. You can set your composer file to point to these packages:

```
{
    "require": {
        "vendor/package": "*@dev"
    },
    "repositories": [
        {
            "type": "path",
            "url": "workbench/*/"
        }
    ]
}
```

The above will symlink your development packages from workbench to the vendor folder automatically.

> Please note in the above repositories path configuration packages are expected immediately in the workbench directory, eg: `workbench/package`. A composer.json file should exist in `workbench/package/composer.json`.

### gh status

[](#gh-status)

Now you can use the `gh status` command in the folder workbench to check the status of your git remote and local changes immediately.

The following is taken into account:

- A title consisting of:
    - The name of the package (in case of a json file).
    - The latest version (based on the latest tag).
- Open changes (uncommitted, new etc).
- Number of commits since last tag.
- Number of commits not pushed.

### gh pull

[](#gh-pull)

The command `gh pull` allows you to mass pull all subdirectories to get you the latest changes.

You can use the optional argument to match subdirectories against a certain (regular expression) match; eg:

```
gh pull ^feature-
```

To pull only directories starting with `feature-`.

Please note this command will not pull changes from the remotes if uncommitted changes have been detected. Unless you:

- force pulling using the `--force` or shorthand `-f` command option. In most cases this is a very bad idea!
- stash and unstash your changes using `--stash` or `-s` command option.

### gh tag

[](#gh-tag)

The command `gh tag` can be used to add new tags to your repositories. When commits are detected since the latest tag, you'll be asked to provide a new tag. You can also skip by leaving the input empty.

As with the pull command, you can use the optional argument to match only specific directories.

With the option `--up` you can specify what part of the previous version you'd like to see in the suggested input, choose between major, minor or patch.

### gh changelog

[](#gh-changelog)

With the `gh changelog` command you are able to generate changelogs between versions quite easily. Please do understand this is a simple parsed commit history between two versions.

The command will loop through all your repositories, find all tags and will auto generate a diff log file in a specified sub folder (use `--path` option to override the default value "changelogs"). Please note any existing files will be removed before writing into them!

As with some of the other commands you can use the argument to filter the directories and use `-f` to force creating changelogs if you have open changes in the directory.

### gh commit

[](#gh-commit)

The `gh commit` command allows you to commit similar changes across all repositories. A commit message may be specified using the `-m` command.

As with other commands, you can use the optional argument to match only specific directories.

### gh push

[](#gh-push)

The `gh push` command pushes the current branch in all repositories to the remote.

As with other commands, you can use the optional argument to match only specific directories.

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance16

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~31 days

Recently: every ~66 days

Total

10

Last Release

3514d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/504687?v=4)[Daniël Klabbers](/maintainers/Luceos)[@luceos](https://github.com/luceos)

---

Top Contributors

[![luceos](https://avatars.githubusercontent.com/u/504687?v=4)](https://github.com/luceos "luceos (41 commits)")[![franzliedke](https://avatars.githubusercontent.com/u/249125?v=4)](https://github.com/franzliedke "franzliedke (1 commits)")[![tobyzerner](https://avatars.githubusercontent.com/u/128862?v=4)](https://github.com/tobyzerner "tobyzerner (1 commits)")

---

Tags

terminalgitpackages

### Embed Badge

![Health badge](/badges/hyn-git-helpers/health.svg)

```
[![Health](https://phpackages.com/badges/hyn-git-helpers/health.svg)](https://phpackages.com/packages/hyn-git-helpers)
```

###  Alternatives

[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k95.4M284](/packages/laravel-horizon)[illuminate/console

The Illuminate Console package.

13046.0M6.3k](/packages/illuminate-console)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M337](/packages/psalm-plugin-laravel)[spatie/laravel-flare

Send Laravel errors to Flare

111.4M6](/packages/spatie-laravel-flare)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
