UGit — Git Client
UGit is a free, open-source Git GUI client for Windows. macOS, and Linux. It provides a visual interface for managing Git repositories, handling common Git operations like staging, committing, branching, and syncing with remotes.
Quality Of Life Features
Getting Started
- File → Open Repository (or
Ctrl+O)
- Select a folder containing a
.git directory
- The repository loads with all its data
- File → Clone… (or
Ctrl+Shift+C)
- Enter the repository URL
- Choose a parent folder
- Click Clone
- File → Init New Repository
- Select a folder
- The folder becomes a Git repository
Interface Overview

Main Features
- Displays information about the current state of the repository.
- Local Changes lists the files that have been modified or added to the repository.
- View modified files (staged and unstaged)
- Stage/unstage individual files or all at once
- Discard changes to files
- Create commits with messages
- Text diffs — Syntax-highlighted code differences
- Image diffs — Three modes:
- Side-by-side comparison
- Swipe (draggable divider)
- Difference (highlights changes)
- Chunk staging — Stage or discard specific chunks
- View all local branches
- Create new branches
- Switch branches
- Merge branches
- Rebase branches
- Delete branches
- Add and remove remotes
- Fetch from remotes
- Pull and push changes
- Manage remote branches
- Save uncommitted changes temporarily
- Apply or pop stashes
- Delete stashes
Commits
- View commit history
- Browse commits by branch
- View commit details and files
- Create tags
- Cherry-pick, revert, and more
Common Workflows
Making Changes
- Modify files in your project
- View changes in the DiffViewer
- Stage files you want to commit
- Write a commit message
- Click Commit
Working with Branches
- Create a new branch: Branches → New Branch
- Switch to your branch: double-click the branch
- Make and commit changes
- Merge or rebase when ready
Syncing with Remote
- Pull — Fetch and merge remote changes
- Push — Upload your commits to remote
- Fetch — Download remote changes without merging
Handling Conflicts
- UGit detects merge conflicts
- Use the conflict resolution controls to choose versions
- Or open in VS Code to resolve manually
- Commit the resolved file
Keyboard Shortcuts
| Action |
Shortcut |
| Open Repository |
Ctrl+O |
| Clone |
Ctrl+Shift+C |
| Stage Selected |
Ctrl+S |
| Unstage Selected |
Ctrl+U |
| Commit |
Ctrl+Enter |
- Clone… — Clone from a remote URL
- Open Repository — Open an existing repository
- Init New Repository — Create a new repository
- Recent Repositories — Quick access to recent projects
- Preferences — Configure settings
- Exit — Close the application
- Color Mode — Change the interface to the Dark or Light color mode
- Clear All Caches — Delete all caches used for repository viewing
- Toggle Developmer Tools — Show/hide the developer tools window
Settings
Access via File → Preferences:
- External editor — The editor to use for “Open in Editor”
- Push all tags by default — Push will include pushing all tags
- Commit block list — Comma separated list of branch names to prevent creating Commmits from
- File Refresh Time — How frequent the Local Changes will be refreshed
- Max Display Commits — The number of commits to list in a Branch view