gitfs: version controlled filesystem

You have a server and you want to rollback the directory with your website files anytime you want. You can keep a backup of the files on a separate media and copy them back. What if you made some changes to the theme and want to keep both the original version and the modified one? Redundancy increases and it’s too difficult to trackback.

Similarly, a writer would want to keep track of every change he ever made to the novel he is writing. These scenarios call for a version control system like git. However, most people wouldn’t want to go through the pain of learning git other than developers.

gitfs is a solution for people who doesn’t need to know about git. It is a version controlled FUSE file-system in python and keeps track of each change you make, silently. gitfs connects an online git repository to a local directory so that changes made to the directory can be tracked. When there is a change to the directory, git push is called behind the scenes. It was developed for needs of devs, but is useful for a layman in need of version control.


  • Automatically commits changes: create, delete, update files and their metadata
  • Browse through working index and commit history
  • Merges with upstream by automatically accepting local changes
  • Mounts the file system as a user or a group
  • Caching commits reduces the memory footprint and speeds up navigation
  • Reduces the number of commits by grouping pushes
  • Edit files using sftp


To install gitfs on Ubuntu, run:

$ sudo add-apt-repository ppa:presslabs/gitfs
$ sudo apt-get update
$ sudo apt-get install gitfs


Run the following command to track a directory:

$ gitfs /mount/mountpoint

Webpage: gitfs

Leave a Reply

Your email address will not be published. Required fields are marked *