Skip to main content

A CLI tool to rewrite git timestamps to standard work hours.

Project description

Git Fuck Time

Git Fuck Time Logo

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 git installed (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:

  1. Your own local feature branches before you push.
  2. Personal projects where you are the benevolent dictator.

ALWAYS MAKE A BACKUP BEFORE RUNNING.

cp -r my-project my-project-backup

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitfucktime-1.0.0.tar.gz (3.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitfucktime-1.0.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

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

Hashes for gitfucktime-1.0.0.tar.gz
Algorithm Hash digest
SHA256 38cdd26fda29d24bab2a58146bb81e1ccb31df5e612094e8431d054658dae5e3
MD5 f12d50a8e0772407d6026418619b9a65
BLAKE2b-256 8301d2b3e7ef0f36b1908896f890f0f8d6e9db8c2d606adcdb22648f1e922718

See more details on using hashes here.

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

Hashes for gitfucktime-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b59e8e94f5024761a5c5b2229ba0abac3ac6b39c7c7d45636440e5983b239388
MD5 a41a7574c4363958ae8507836308e990
BLAKE2b-256 2dfe6447de584e7ede6c87d2d2404c9c222a10c873ef4e58ee0b515421a6accf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page