PHPackages                             cytopia/git-rewrite-author - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. cytopia/git-rewrite-author

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

cytopia/git-rewrite-author
==========================

Rewrite git author and committer history (locally and remotely).

0.2(10y ago)161.6k3MITShell

Since Oct 10Pushed 10y ago1 watchersCompare

[ Source](https://github.com/cytopia/git-rewrite-author)[ Packagist](https://packagist.org/packages/cytopia/git-rewrite-author)[ Docs](https://github.com/cytopia/git-rewrite-author)[ RSS](/packages/cytopia-git-rewrite-author/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (3)Used By (0)

git-rewrite-author
==================

[](#git-rewrite-author)

[![Build Status](https://camo.githubusercontent.com/93d97d8fe4dad300e49c82fce75d56045a2a231b8d1a5ccf8d20f783aadba937/68747470733a2f2f7472617669732d63692e6f72672f6379746f7069612f6769742d726577726974652d617574686f722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/cytopia/git-rewrite-author)[![Latest Stable Version](https://camo.githubusercontent.com/f20ec2e2dd33c31d678c0488cc716f62f8522b14bbda9c44fb2d104d51625da6/68747470733a2f2f706f7365722e707567782e6f72672f6379746f7069612f6769742d726577726974652d617574686f722f762f737461626c65)](https://packagist.org/packages/cytopia/git-rewrite-author) [![Total Downloads](https://camo.githubusercontent.com/344de589a9cff7a213786b09acf37142cee2b4b91ec4e4fada93303032ad8f2c/68747470733a2f2f706f7365722e707567782e6f72672f6379746f7069612f6769742d726577726974652d617574686f722f646f776e6c6f616473)](https://packagist.org/packages/cytopia/git-rewrite-author) [![Latest Unstable Version](https://camo.githubusercontent.com/54d555bfcc7aa6e2d1030a821b5bb89b1d08f46e579baaf0ef2ea66bfd640bcf/68747470733a2f2f706f7365722e707567782e6f72672f6379746f7069612f6769742d726577726974652d617574686f722f762f756e737461626c65)](https://packagist.org/packages/cytopia/git-rewrite-author) [![License](https://camo.githubusercontent.com/388717bb4c83408a9a0ef9860d4b15e3000cdb5aa719d2ddbd7b0a9a59176ec0/68747470733a2f2f706f7365722e707567782e6f72672f6379746f7069612f6769742d726577726974652d617574686f722f6c6963656e7365)](http://opensource.org/licenses/MIT)[![POSIX](https://camo.githubusercontent.com/feb63e4a980dfcca96f4cc1f5d5a8ed53ea3951e4db4bc39427267e5245978bd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706f7369782d3130302532352d627269676874677265656e2e737667)](https://en.wikipedia.org/?title=POSIX)[![Type](https://camo.githubusercontent.com/466a2aaa559c1fa8990a00e9b3d30900ae8559d4f772913b12b1cd334e0ffeac/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f747970652d25324662696e25324673682d7265642e737667)](https://en.wikipedia.org/?title=Bourne_shell)

`git-rewrite-author` is a shell tool to manipulate the author and committer git history. You can use this tool to replace a specific git author/committer email with a different one.

**For example:** You have accidentally committed and pushed something urgent from your production server...

```
commit 70dbf556b735a7e1729f79b36502829415c037dd
Author: Charly Root
Date:   Sat Oct 10 18:30:01 2015 +0200

    Applied Security Fix

```

...and now you see that your git author history is not very tidy anymore. Can this be changed? Of course :-)

Read more details at **[everythingcli.org](http://www.everythingcli.org/git-like-a-pro-rewrite-author-history/)**

1. Features
-----------

[](#1-features)

- List all current git authors and committers (name and email)
- Search author/committer by email and replace with different name and email
- Show how all commands work (`--dry` option)

2. Usage
--------

[](#2-usage)

### 2.1 All options

[](#21-all-options)

```
Usage: git-rewrite-author -l [--dry]
       git-rewrite-author -r    [--dry]
       git-rewrite-author -h
       git-rewrite-author -v

 -l       List current authors and committers in git
 -r       Rewrite history from  to  and
 --dry    (optional) Do not do anything, just print the command.
 -v       Show version information.
 -h       Show this help screen.
```

### 2.2 List all authors

[](#22-list-all-authors)

```
$ git-rewrite-author -l
cytopia
```

### 2.3 Replace author

[](#23-replace-author)

```
# Rewrite hisstory
$ git-rewrite-author -r "cytopia@everythingcli.org" "better@email.com" "Cool Name"

# See who is left in the history
$ git-rewrite-author -l
Cool Name
```

3. Installation
---------------

[](#3-installation)

You can download `git-rewrite-author` via git or composer:

```
# git
git clone -https://github.com/cytopia/git-rewrite-author.git

# composer
composer require cytopia/git-rewrite-author
```

Afterwards just execute the `install.sh`, it will simply symlink the file to your home binary directory. So whenever you update the git repository afterwards, the symlink will always point to that version.

```
$ ./install.sh
Symlink git-rewrite-author to ~/bin? (Y/n)y
```

4. Contribution
---------------

[](#4-contribution)

Contributors are welcome.

5. License
----------

[](#5-license)

[![license](https://camo.githubusercontent.com/388717bb4c83408a9a0ef9860d4b15e3000cdb5aa719d2ddbd7b0a9a59176ec0/68747470733a2f2f706f7365722e707567782e6f72672f6379746f7069612f6769742d726577726974652d617574686f722f6c6963656e7365)](http://opensource.org/licenses/mit)

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

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

2

Last Release

3908d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/527dbe351b75d33be6d5428502783ceb57e86949892a0a0062f24199772aabae?d=identicon)[cytopia](/maintainers/cytopia)

---

Top Contributors

[![cytopia](https://avatars.githubusercontent.com/u/12533999?v=4)](https://github.com/cytopia "cytopia (14 commits)")

---

Tags

gitgit-committergit authorgit historyrewrite git history

### Embed Badge

![Health badge](/badges/cytopia-git-rewrite-author/health.svg)

```
[![Health](https://phpackages.com/badges/cytopia-git-rewrite-author/health.svg)](https://phpackages.com/packages/cytopia-git-rewrite-author)
```

###  Alternatives

[czproject/git-php

Library for work with Git repository in PHP.

5555.1M102](/packages/czproject-git-php)[cypresslab/gitelephant

An abstraction layer for git written in PHP

6131.1M28](/packages/cypresslab-gitelephant)[teqneers/php-stream-wrapper-for-git

Git Stream Wrapper for PHP

2862.2M8](/packages/teqneers-php-stream-wrapper-for-git)[bruli/php-git-hooks

Git hooks for PHP projects.

669371.6k5](/packages/bruli-php-git-hooks)[marcocesarato/php-conventional-changelog

Generate changelogs and release notes from a project's commit messages and metadata and automate versioning with semver.org and conventionalcommits.org

2521.4M117](/packages/marcocesarato-php-conventional-changelog)[ramsey/conventional-commits

A PHP library for creating and validating commit messages according to the Conventional Commits specification. Includes a CaptainHook action!

1931.5M142](/packages/ramsey-conventional-commits)

PHPackages © 2026

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