A CLI tool to rewrite git timestamps to standard work hours.
Project description
Git Fuck Time
Because nobody needs to know you were debugging CSS at 3 AM on a Saturday.
gitfucktime is a CLI utility that scrubs your git commit timestamps and spreads them out over a healthy, respectable 9-5, Monday-to-Friday schedule.
Gaslight your boss, your colleagues, and even your future self into believing you have a perfect work-life balance.
Features
- 9-to-5 Only: Automatically shifts commits to "standard" business hours (09:00 - 17:00).
- No Weekends: Skips Saturdays and Sundays, because you definitely have a life outside of work.
- Smart Detection: Automatically picks up where you left off. It looks at your last pushed commit and starts falsifying... er, correcting... timestamps from the very next workday.
- Interactive Dashboard: Run it without arguments to see a pretty summary of your shame (unpushed commits) and fix them with one click.
Prerequisites
- Git: You need to have
gitinstalled (duh). - Python 3.6+: Because we have standards.
Installation
pip install gitfucktime
Congratulations, you are now a "morning person".
Usage
1. The "I Just Woke Up and Fixed This" Mode (Recommended)
Automatically detects your unpushed commits and spreads them out starting from the next logical work day after your last push.
# Run the interactive dashboard
gitfucktime
# Or do it silently
gitfucktime -u
2. The "Crunch Time" Cover-Up
Rewrites your last 10 commits to look like a productive week rather than a panic-fueled all-nighter.
gitfucktime --last 10
3. The micromanager
Manually specify the exact dates you want your work to appear in. We won't judge.
gitfucktime --start 2025-01-01 --end 2025-01-10
CLI Reference
| Flag | Short | What it does |
|---|---|---|
--start |
-s |
Start date (YYYY-MM-DD). The day you allegedly started working. |
--end |
-e |
End date (YYYY-MM-DD). The day you allegedly finished. |
--unpushed |
-u |
Only fixes commits you haven't exposed to the public yet. |
--last N |
-l |
Fixes the last N commits. |
--first N |
-f |
Fixes the first N commits (for fresh repos). |
--version |
-v |
Version info. |
--help |
-h |
Shows the help menu. |
⚠️ warning ⚠️
This tool rewrites git history.
This changes commit hashes. If you use this on a shared branch that others have already pulled, they will hate you.
Only use this on:
- Your own local feature branches before you push.
- Personal projects where you are the benevolent dictator.
ALWAYS MAKE A BACKUP BEFORE RUNNING.
cp -r my-project my-project-backup
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gitfucktime-1.0.0.tar.gz.
File metadata
- Download URL: gitfucktime-1.0.0.tar.gz
- Upload date:
- Size: 3.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38cdd26fda29d24bab2a58146bb81e1ccb31df5e612094e8431d054658dae5e3
|
|
| MD5 |
f12d50a8e0772407d6026418619b9a65
|
|
| BLAKE2b-256 |
8301d2b3e7ef0f36b1908896f890f0f8d6e9db8c2d606adcdb22648f1e922718
|
File details
Details for the file gitfucktime-1.0.0-py3-none-any.whl.
File metadata
- Download URL: gitfucktime-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b59e8e94f5024761a5c5b2229ba0abac3ac6b39c7c7d45636440e5983b239388
|
|
| MD5 |
a41a7574c4363958ae8507836308e990
|
|
| BLAKE2b-256 |
2dfe6447de584e7ede6c87d2d2404c9c222a10c873ef4e58ee0b515421a6accf
|