Version controlled file system

Users can now benefit from using a version-controlled environment without having to learn anything new.
Read the docs to learn more about gitfs.

Install gitfs

Drone StatusCoverage Status
How gitfs works

Features

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

Facts

How the idea came up

The idea of a git file system was conceived out of the need of users to make small changes to the project the developers were working on. Lacking the prior knowledge needed in order to use a version control system, these modifications were bringing nightmares to the development team and a solution was needed. Now you have the possibility of organizing everything into commits yourself with this FUSE file system for git.

See how we're using it →

Use cases

Mount your web server with gitfs for easy deployment and fast rollbacks. Use gitfs on a local project to keep track of all the changes.

I have an idea →

How it works

Gitfs is written exclusively in Python. It uses the fusepy module to expose the file system, backed by pygit2. It's also thoroughly tested with over 95% coverage. It mounts a file system whose operations are mapped to the usual git ones. Whenever you write to a file in a gitfs-mounted file system, the file will be committed, and a push will be made to the origin.

Find out more →

How to contribute

Development of gitfs happens on GitHub. You are highly encouraged to contribute with code, tests, documentation, or just to share your experience.

Get involved →

Watch gitfs in action

gitfs in action - screencast