explaingit

fredriknoren/ungit

10,579JavaScriptAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A browser-based visual interface for git that lets you commit, branch, and merge by clicking through a diagram instead of typing commands, and works on remote servers too.

Mindmap

mindmap
  root((ungit))
    What it does
      Visual git interface
      Browser based
      Local web server
    Features
      Branch visualization
      Commit and merge
      Remote server use
    Integrations
      GitHub
      VS Code plugin
      Gerrit plugin
    Tech stack
      Node.js
      JavaScript
      HTML CSS
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace git command-line work with a clickable diagram interface for committing, branching, and merging in a local repository.

USE CASE 2

Manage git on a remote Linux server without a graphical desktop by running ungit there and connecting from your laptop's browser.

USE CASE 3

Add a visual git interface directly inside VS Code, Atom, or Brackets using the ungit editor plugin.

Tech stack

JavaScriptNode.jsHTMLCSS

Getting it running

Difficulty · easy Time to first run · 5min

Requires Node.js and git installed, some ad blockers may interfere with the local server and need to be configured to allow it.

Use, modify, and distribute freely for any purpose, including commercial use, with no restrictions beyond keeping the copyright notice.

In plain English

Ungit is a visual, browser-based interface for git, the version control system that developers use to track changes in their code. Git is well-known for being confusing to beginners: its command-line interface uses terms and concepts that take time to learn. Ungit's goal is to make those same operations accessible through a clean point-and-click interface that runs inside a web browser. To use it, you install ungit on a computer that already has Node.js and git installed, then run the command ungit from a terminal. This starts a small local web server and opens a browser tab showing a visual diagram of your git repository, including branches, commits, and the current state of your files. You can commit changes, switch branches, merge, and perform other common git operations by clicking through the interface rather than typing commands. Because ungit is web-based, it also works on remote machines. If you are working on a cloud server or a machine without a graphical desktop, you can run ungit there and connect to its interface from your laptop's browser by visiting the server's address on port 8448. This makes it useful in situations where you have shell access but no graphical environment. Ungit works on Windows, Mac, and Linux, and integrates with GitHub. Plugins exist for connecting it to Gerrit, a code review tool used in some larger teams. Editor integrations are available for Visual Studio Code, Atom, and Brackets, so you can open ungit directly from within your text editor. The project is released under the MIT license. A few known quirks are documented: some ad blockers may interfere with the local server, and git's output must be in English for ungit to parse it correctly. If git is set to display output in another language, unexpected behavior can occur.

Copy-paste prompts

Prompt 1
I just installed ungit with npm install -g ungit. Walk me through creating a feature branch, making a commit, and merging it back to main using the browser interface.
Prompt 2
I am running ungit on a remote cloud server. How do I access it securely from my local browser without exposing port 8448 to the public internet?
Prompt 3
My ad blocker is interfering with ungit's local server. What domains or rules should I whitelist to make ungit work correctly in Chrome?
Prompt 4
Set up ungit as a systemd service on Linux so it starts automatically on reboot and stays available on port 8448 without me having to launch it manually.
Open on GitHub → Explain another repo

← fredriknoren on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.