explaingit

jayphelps/git-blame-someone-else

11,626ShellAudience · developerComplexity · 2/5Setup · easy

TLDR

A joke shell script that rewrites a past Git commit's author field to blame someone else for your code, showing how Git history can be forged and why signed commits exist as a safeguard.

Mindmap

mindmap
  root((repo))
    What it does
      Rewrites commit author
      Blames another developer
      Works on past commits
    How it works
      Shell script
      Git extension command
      Unix systems only
    Use cases
      Prank or live demo
      Teaching signed commits
      Understanding Git history
    Warnings
      Can damage real repos
      No warranty provided
      Signed commits detect forgery
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Make a local commit appear authored by a different developer as a prank or live demo.

USE CASE 2

Demonstrate to students why cryptographic commit signing matters for trustworthy code attribution.

USE CASE 3

Show in a talk how Git recorded history can be rewritten after the fact.

Tech stack

ShellGit

Getting it running

Difficulty · easy Time to first run · 5min

Requires a Unix-like system, install with make install after cloning, no external dependencies.

No license information was mentioned in the explanation.

In plain English

This is a joke shell script built as a Git extension. Git is a version control system that tracks who wrote each line of code and when. Every change (called a commit) is recorded with an author's name and email. A built-in Git command called git blame shows, line by line, which person last changed each part of a file, making it easy to trace who is responsible for a given piece of code. This script adds a custom command, git blame-someone-else, which rewrites the author and committer fields of a past commit to show a different person's name instead. In plain terms, it lets you make it appear that another developer wrote something you wrote. The repository description says it directly: "Blame someone else for your bad code." The project was written as a joke, and the README says so explicitly. There is a fabricated quote attributed to Linus Torvalds, the creator of Git, praising the tool. A link in the README reveals that the commit containing that quote was authored by Torvalds only because the script itself was used to forge it. The disclaimer warns that the script can cause serious damage if run carelessly against a real repository, and the author takes no responsibility for the results. Installing it requires cloning the repository and running a make install command. Once installed, you call it by passing a desired author name and a commit identifier. It works on standard Unix-like systems. Beyond the humor, this project illustrates how Git's recorded history can be rewritten and why signed commits (which add a cryptographic signature to prove authorship) exist as a safeguard in projects where trustworthy attribution matters.

Copy-paste prompts

Prompt 1
I cloned git-blame-someone-else and ran make install. Show me the exact command to change the author of commit abc1234 to appear as 'Jane Doe [email protected]'.
Prompt 2
Explain what Git signed commits do and how they prevent the kind of author forgery that git-blame-someone-else performs.
Prompt 3
Walk me through what git-blame-someone-else actually changes in a commit object and why the commit hash changes afterward.
Prompt 4
I used git-blame-someone-else on a commit and now want to revert it. What git commands do I need to restore the original author?
Open on GitHub → Explain another repo

← jayphelps on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.