DEV Community

Cover image for Monitor All Your Git Projects at Once
Uralys
Uralys

Posted on • Originally published at Medium

Monitor All Your Git Projects at Once

When you work across multiple projects and directories, it's easy to
lose track of which repositories have uncommitted changes, which ones
need to be pushed, or which ones have diverged from remote.

That's why I built check-projects --- a fast CLI tool that gives
you a unified overview of all your git repositories in a single
command.

tldr; https://github.com/uralys/check-projects

The Problem

My work is spread across several directories:

  • Uralys projects → ~/Projects/uralys
  • Nomodata projects → ~/Projects/uralys
  • Alterego projects → ~/Projects/alterego

Running git status or git fetch manually in each folder is slow and error-prone. I
wanted one tool to scan everything and tell me what needs attention.

Quick Start

Install

curl -fsSL https://raw.githubusercontent.com/uralys/check-projects/main/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

This installs a single binary compatible with macOS, Linux, and Windows.

Configure

Create a config file at ~/check-projects.yml:

categories:
  - name: uralys
    root: ~/Projects/uralys

  - name: alterego
    root: ~/Projects/alterego
    ignore:
      - "*-deprecated"
Enter fullscreen mode Exit fullscreen mode

check-projects will automatically scan these directories for git
repositories.

Run

check-projects
Enter fullscreen mode Exit fullscreen mode

Example output:

✔ alterego

x uralys
  * M www
  ⬆ flying-ones
  ✱ ✚ avindi
Enter fullscreen mode Exit fullscreen mode

Understanding the Symbols

  • --- Clean (in sync with remote)
  • --- Ahead of remote (push needed)
  • ⬆⬆ --- Diverged from remote
  • * M --- Modified files
  • * D --- Deleted files
  • ✱ ✚ --- Untracked files

Two Modes

1. CLI Mode --- Quick Status Check

check-projects
check-projects -v
check-projects --category uralys
check-projects --fetch
Enter fullscreen mode Exit fullscreen mode

2. TUI Mode --- Interactive Interface

check-projects --tui
Enter fullscreen mode Exit fullscreen mode

From this interface, you can navigate between projects, see detailed
status, and press f to fetch from remote on the selected project.

Thanks for reading, see you around!

As always, feel free to comment on parts you need more explanations for, or share your thoughts on how you would have handled the parts you disagree with.

Full documentation: https://github.com/uralys/check-projects

Top comments (0)