Skip to content

KyleBenzle/GitMo

Repository files navigation

GitMo logo

GitMo

Automatic GitHub sync for local project folders.

GitMo (Git Mobile) is a small Linux-first desktop app for keeping project folders synced to GitHub automatically.

Think of it as a poor-man's Google Docs for code, notes, drafts, and project folders: you work in normal files on your computer, and GitMo quietly turns each selected folder into a GitHub-backed repo with autosaved commits.

Why

Git is powerful, but it is easy to forget the repetitive parts: create the repo, set the remote, commit, push, pull, check status, and repeat. GitMo wraps that workflow in a simple desktop app so local folders can stay backed up and visible on GitHub without living in the terminal all day.

GitMo is useful when you want:

  • Automatic backups of active project folders
  • A GitHub repo created from a plain local folder
  • Simple clone/setup for repos that exist on GitHub but not locally
  • One folder per repo, organized under a GitMo folder
  • Lightweight two-way sync for solo work or low-conflict workflows
  • A plain-file workflow instead of a cloud document editor

What It Does

  • Lets you choose a GitMo root folder
  • Treats direct child folders as possible GitHub repos
  • Lists your GitHub repos beside local folders
  • Clones GitHub repos that are missing locally
  • Creates GitHub repos for local folders that are missing remotely
  • Initializes plain folders as git repos when needed
  • Creates a root README.md for new folder repos when one does not exist
  • Commits and pushes local changes using GitMo autosave
  • Supports one-way and two-way sync modes
  • Logs activity to ~/.config/gitmo/gitmo.log

Sync Modes

one-way

Local changes are committed and pushed to GitHub. Remote changes are detected, but GitMo does not pull them into the local folder.

two-way

GitMo fetches remote updates and pulls fast-forward changes. If both local and remote changed, GitMo pauses that repo and reports a conflict instead of trying to guess.

Requirements

  • Linux
  • Python 3
  • Tkinter
  • git
  • A GitHub personal access token with repo access

GitMo uses the GitHub REST API and the local git command-line tool.

Run

From this folder:

python3 app.py

Or double-click GitMo.desktop.

Some file managers may ask you to trust or allow the launcher the first time.

First Setup

  1. Start GitMo.
  2. Paste a GitHub personal access token.
  3. Choose your GitMo folder.
  4. Open Manage Repos.
  5. Select the folders/repos you want GitMo to manage.
  6. Choose one-way or two-way.
  7. Click Apply Selection.

After that, GitMo can run in the background and sync selected repos.

New Folder Flow

If you add a new folder inside the GitMo folder:

  1. Open Manage Repos.
  2. Select the new folder.
  3. Click Apply Selection.

GitMo creates a GitHub repo with the folder name, initializes git if needed, adds a README.md if one is missing, commits the folder contents, and pushes everything to GitHub.

New GitHub Repo Flow

If you create a repo on GitHub:

  1. Open Manage Repos.
  2. Select the repo.
  3. Click Apply Selection.

GitMo clones it into the GitMo folder and starts tracking it.

App Data

Config:

~/.config/gitmo/config.json

Logs:

~/.config/gitmo/gitmo.log

Older config files at ~/.config/gitlo/config.json are read automatically during the app rename transition.

Notes

  • GitMo is designed for simple folder-to-GitHub sync, not complex team merge workflows.
  • Two-way sync only pulls fast-forward updates.
  • Conflicting local and remote changes require manual git resolution.
  • Autosync currently uses a polling loop with a 60 second debounce.

About

GitMo - Auto-sync local project folders to GitHub

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors