git-blame-someone-else
Blame someone else for your bad code.
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.
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.
Where it fits
- Make a local commit appear authored by a different developer as a prank or live demo.
- Demonstrate to students why cryptographic commit signing matters for trustworthy code attribution.
- Show in a talk how Git recorded history can be rewritten after the fact.