Skip to content

misjoinder/gitfog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Camouflage git config, commit, and push

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages