Project

gitfog

0.0
No commit activity in last 3 years
No release in over 3 years
Camouflage git commit and push times, disable regular git commands
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 4.1.5
~> 0.7
~> 1.2.6
~> 1.6.20
 Project Readme

GitFog

Inspired by Bitcoin Fog, GitFog is a command line tool that camouflages your work with git by randomizing timestamps on git commit and git push.

Use case

When you contribute code with git, you share your name, email, and work schedule with everyone. GitFog helps you change your git/config, then goes further to better anonymize your work. Suppose someone suspects that you are involved, and finds out that you often commit to personal projects on Tuesday afternoons. They would examine whether your commits and pushes happen at similar days and times as others. By using GitFog, your commits are spaced out and randomized.

Alternatives

The easiest option would be to schedule a commit and push at a regular time (for example, 3am every morning) but this requires you to have the computer always running, makes it obvious that you are scheduling your commits, and any immediate commits and pushes (ie to fix a bug on the site) will break the pattern.

How to install GitFog

Have Ruby and RubyGems installed on your computer.

Then run gem install gitfog

Currently at version 0.0.4

How to use GitFog

gitfog init will disable git and enable gitfog commands. This prevents you from using the regular git commands by habit. You will be asked to set a user email and password to connect to commits (this prevents you from leaking your global git config though commits)

gitfog off will disable gitfog and re-enable git commands. Make sure you do not commit data that you do not want to be shared. You can always re-enable GitFog with gitfog init.

gitfog status, gitfog add, and gitfog rm replace the standard git commands.

gitfog commit will set the timestamp on your commit to sometime between the previous commit and the present, up to 48 hours in the past. This makes it possible for you to make a few commits in quick succession which in the timescale may be spaced out over several hours. The timestamp will not affect the order of commits. gitfog commit --now will use your system time.

gitfog push will hold your push for a random time in the next 8 hours. You can cancel the push with Ctrl+C, make an immediate push with gitfog push --now, or change the maximum time with gitfog push --max 4.