ungit README

The project's README from github.com/FredrikNoren/ungit. As one markdown file: README.md.

ungit

Release CI Join the chat at https://gitter.im/FredrikNoren/ungit

The easiest way to use git. On any platform. Anywhere.

xkcd

Git is known for being a versatile distributed source control system that is a staple of many individuals, communities, and even for the City of Chattanooga to crowd source bicycle parking locations. However, it is not known for userfriendliness or easy learning curve.

Ungit brings user friendliness to git without sacrificing the versatility of git.

Follow @ungitui on twitter

Quick intro to ungit: https://youtu.be/hkBVAi3oKvo

Screenshot

Installing

Requires node.js (≥ 20.19.0), npm (≥ 10.8.2, comes with node.js) and git (≥ 2.34.x). To install ungit just type:

npm install -g ungit

NOTE: If your system requires root access to install global npm packages, make sure you use the -H flag:

sudo -H npm install -g ungit

Prebuilt electron packages are available here (git is still required).

Using

Anywhere you want to start, just type:

ungit

This will launch the server and open up a browser with the ui.

Configuring

Put a configuration file called .ungitrc in your home directory (/home/USERNAME on *nix, C:/Users/USERNAME/ on windows). Configuration file must be in json format. See source/config.js for available options.

You can also override configuration variables at launch by specifying them as command line arguments; ungit --port=8080. To disable boolean features use --no: ungit --no-autoFetch.

Example of ~/.ungitrc configuration file to change default port and enable bugtracking:

{
	"port": 8080,
	"bugtracking": true
}

PGP

Git and github both supports PGP signing. Within Ungit these features can be enabled via doing either one of the below two actions.

Currently, Ungit DOES NOT support GPG authentication! While git allows robust programmatic authentication via credential-helper, I could not find an easy way to do something equivalent with GPG.

Therefore, password-less gpg authentication or 3rd party gpg password must be configured when using Ungit to commit with gpg. Below are several way to enable password-less gpg authentication for various OSs.

I understand this is not convenient, but security is hard. And I'd much rather have bit of inconvenience than Ungit having security exposure.

External Merge Tools

If you have your own merge tool that you would like to use, such as Kaleidoscope or p4merge, you can configure ungit to use it. See MERGETOOL.md.

Auto Refresh

Ungit will watch git directory recursively upon page view and automatically refresh contents on git operations or changes on files that are not configured to be ignored in .gitignore.

Text Editor Integrations

atom-ungit Screenshot

brackets-ungit Screenshot

VSCode-Ungit screenshot

Developing

See CONTRIBUTING.md.

Maintainers

Known issues

Changelog

See CHANGELOG.md.

License (MIT)

See LICENSE.md. To read about the Faircode experiment go to #974. Ungit is now once again MIT.

Dependency Status devDependency Status

ungit (FredrikNoren/ungit)

Searching Database…

10.6K ·GitHub
What is this?Ungit is a free, web-based interface for git — a visual client you drive from the browser instead of memorizing commands. Its tagline: 'The easiest way to use git. On any platform. Anywhere.'
So is this a desktop app, or does it live in the browser?It lives in the browser: running 'ungit' starts a local server and opens the UI in a browser tab. There are also prebuilt Electron packages if you prefer a standalone desktop app.
How do I get it running?Install globally with 'npm install -g ungit' (add 'sudo -H' if your system needs root for global npm packages), then type 'ungit' in any repo — the server starts and the UI opens in your browser.
What needs to be on my machine before I start?node.js (≥ 20.19.0), npm (≥ 10.8.2, bundled with node) and git (≥ 2.34.x). Even the prebuilt Electron packages still need git installed.
Does it always just work, or are there gotchas?A few known ones: ad blockers like uBlock may block its localhost API calls (whitelist the ungit port), and git output must be in English or repo-state parsing gets confused.
Who is it for — git beginners or people who already live in the terminal?Mostly people who find git's learning curve steep: the README's pitch is adding user-friendliness to git without giving up any of its versatility.
Is it tied to a particular operating system?No — it runs on any platform node.js and git support, so Windows, macOS and Linux are all fine. Since the UI is a browser page, the OS mainly matters for installing node and git.
My project lives on a remote machine — can I still use it there?Yes, that's a headline feature: run ungit on a cloud or pure shell machine and use the UI from your browser. Port and other settings go in a .ungitrc file or launch flags like --port=8080.
Is it free and open source?MIT licensed and free. It briefly experimented with a Faircode model, but as the README puts it, ungit is now once again MIT.
Can I sign my commits with GPG?Signed commits can be enabled via git's commit.gpgsign config or isForceGPGSign in .ungitrc, but ungit does not support GPG authentication itself — you need password-less GPG set up, e.g. a cached passphrase via gpg-agent with pinentry.
Can I plug in my own merge tool, like Kaleidoscope or p4merge?Yes. Ungit can be configured to use an external merge tool of your choice — Kaleidoscope and p4merge are given as examples, with setup instructions in MERGETOOL.md.
Are there integrations for my code editor?Yes, community-built ones: vscode-ungit for Visual Studio Code, atom-ungit for Atom and brackets-ungit for Brackets.
If I do git work in the terminal while ungit is open, will the UI notice?Yes — on page view ungit watches the git directory recursively and automatically refreshes on git operations or changes to files not ignored in .gitignore.
Size
21.7 MB
Stars
10.6K
Age
13y
Commits · 90 Days