Skip to content

assaffeuerstein/gitler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gitler - Git Helper for Humans

A beautiful TUI (Text User Interface) application that makes Git easy for beginners. Featuring a classic blue DOS-style interface that guides you through common Git operations without needing to memorize commands.

Gitler Screenshot

Features

  • Initialize Repository - Set up Git in any directory with one click
  • View Status - See all your changes at a glance with color-coded files
  • Stage Files - Interactive file selector to choose what to commit
  • Commit Changes - Simple text input for commit messages
  • Push & Pull - Sync with remote repositories easily
  • Branch Management
    • Create new branches
    • Switch between branches
    • Rename branches
    • Delete branches
  • Stash Changes - Temporarily save your work
  • View Commit Log - Browse your commit history
  • Discard Changes - Reset when things go wrong

Installation

Using Homebrew (Recommended)

# Add the tap (first time only)
brew tap assaffeuerstein/gitler

# Install gitler
brew install gitler

Build from Source

Requires Xcode 14+ and macOS 12 (Monterey) or later.

# Clone the repository
git clone https://github.com/assaffeuerstein/gitler.git
cd gitler

# Build with Swift Package Manager
swift build -c release

# Install to /usr/local/bin (optional)
sudo cp .build/release/gitler /usr/local/bin/

Usage

Simply navigate to any directory in your terminal and run:

gitler

Keyboard Controls

Key Action
↑/↓ Navigate menu items
Enter Select/confirm
Esc Go back/cancel
Space Toggle selection (in file lists)
A Select all (in file lists)
N Select none (in file lists)
Q Quit the application

Quick Actions

The main menu shows shortcuts for common actions:

  • S - View Status
  • A - Stage Files
  • C - Commit Changes
  • P - Push to Remote
  • L - Pull from Remote
  • B - Branch Management
  • T - Stash Changes
  • G - View Commit Log
  • D - Discard All Changes
  • I - Initialize Repository (when not in a git repo)

Screenshots

Main Menu

The main menu adapts based on whether you're in a Git repository:

┌──────────────────────────────────────────────────────────┐
│                      GITLER v1.0                         │
│              Git Helper for Humans                       │
├──────────────────────────────────────────────────────────┤
│                                                          │
│   ▶ View Status                                          │
│     Stage Files                                          │
│     Commit Changes                                       │
│     Push to Remote                                       │
│     Pull from Remote                                     │
│     ─────────────────                                    │
│     Branch Management  →                                 │
│     Stash Changes      →                                 │
│     ─────────────────                                    │
│     Exit                                                 │
│                                                          │
├──────────────────────────────────────────────────────────┤
│  ⎇ main │ ✓ Clean │ Remote: origin                       │
└──────────────────────────────────────────────────────────┘

File Staging

Select which files to stage with an intuitive checkbox interface:

┌─────────────────── Select Files to Stage ────────────────┐
│                                                          │
│ [✓] M src/main.swift                                     │
│ [✓] M src/utils.swift                                    │
│ [ ] ? .DS_Store                                          │
│ [✓] A README.md                                          │
│                                                          │
│ Selected: 3/4    Space: Toggle | A: All | Enter: Confirm │
└──────────────────────────────────────────────────────────┘

Configuration

Gitler works out of the box with no configuration needed. It uses your existing Git configuration (user name, email, remotes, etc.).

Requirements

  • macOS 12 (Monterey) or later
  • Git installed and available in PATH
  • Terminal that supports ANSI escape codes (Terminal.app, iTerm2, etc.)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Inspired by classic DOS interfaces and TUI applications
  • Built with Swift for native macOS performance
  • Thanks to all contributors and users!

Troubleshooting

Terminal doesn't render correctly

Make sure your terminal supports:

  • Unicode characters (for box drawing)
  • ANSI color codes (256 color support recommended)
  • Alternative screen buffer

Try running in Terminal.app or iTerm2 if you have issues.

Git commands fail

Ensure Git is installed and configured:

git --version
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Screen doesn't resize properly

Press any key after resizing to refresh the display.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors