PHPackages                             imliam/gitghost - 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. imliam/gitghost

ActiveProject

imliam/gitghost
===============

v1.0.2(1y ago)10211[1 PRs](https://github.com/imliam/gitghost/pulls)MITPHP

Since Jan 25Pushed 1y ago1 watchersCompare

[ Source](https://github.com/imliam/gitghost)[ Packagist](https://packagist.org/packages/imliam/gitghost)[ RSS](/packages/imliam-gitghost/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

GitGhost
========

[](#gitghost)

GitGhost is a command-line tool that mirrors your Git activity from one repository to another, allowing you to synchronize your commit history from a private repository (e.g., on GitLab) to a dummy repository on GitHub.

This helps maintain a more accurate graph to show your real coding habits without exposing your private repository's contents to a third party service.

GitHub activity graph before using GitGhost: [![Before](./assets/before.png)](./assets/before.png)

GitHub activity graph after syncing work activity using GitGhost: [![After](./assets/after.png)](./assets/after.png)

Features
--------

[](#features)

- Dummy Repository Setup: Easily set up a dummy repository for syncing commits.
- Commit Filtering: Sync commits only from specific authors.
- Accurate Commit Dates: Preserves the original commit and committer dates.
- Progress Bar: Provides real-time feedback on the commit synchronization process.
- Secure Execution: Handles private repositories securely by inheriting SSH keys and terminal configurations.

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

[](#installation)

GitGhost requires PHP. Using [Composer](https://getcomposer.org/), you can install GitGhost globally with the following command:

```
composer global require imliam/gitghost
```

Alternatively, you can use [cpx](https://cpx.dev) to run GitGhost:

```
cpx imliam/gitghost
```

Once installed, you need to run the setup command to configure GitGhost. This will help prompt you to set up your dummy repository and determine which authors to commit from and to:

```
gitghost setup
```

You can find the generated configuration file at `~/.gitghost.json`, or rerun the setup command to make changes to it.

Usage
-----

[](#usage)

Once all set up, use the `sync` command and pass in the path of the local repository you want to mirror your commit history from:

```
gitghost sync /path/to/local/repository
```

This will recreate the git history by making commits dated into the past to the dummy repository and push them to the remote repository.

Running this command again at a later date will only sync new commits repo.

Once a repository is synced for the first time, it is added to an internal list of repositories. You can run the `syncall` command to sync all repositories in the list without needing to specify each path individually.

```
gitghost syncall
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance43

Moderate activity, may be stable

Popularity15

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~0 days

Total

3

Last Release

478d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3e8a14b9f997cf85aacea7d39da9dc33c38cc05fe03360578327ea9bcb25f4d9?d=identicon)[ImLiam](/maintainers/ImLiam)

---

Top Contributors

[![imliam](https://avatars.githubusercontent.com/u/4326337?v=4)](https://github.com/imliam "imliam (6 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/imliam-gitghost/health.svg)

```
[![Health](https://phpackages.com/badges/imliam-gitghost/health.svg)](https://phpackages.com/packages/imliam-gitghost)
```

###  Alternatives

[phan/phan

A static analyzer for PHP

5.6k11.2M1.1k](/packages/phan-phan)[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[php-soap/wsdl

Deals with WSDLs

173.5M12](/packages/php-soap-wsdl)[php-soap/wsdl-reader

A WSDL reader in PHP

212.3M9](/packages/php-soap-wsdl-reader)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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