gitmyhub

GitUp

Objective-C ★ 12k updated 8d ago

The Git interface you've been missing all your life has finally arrived.

GitUp is a free Mac Git client with a live interactive commit graph, unlimited undo and redo for any Git operation including rebase and merge, and instant full-text search across all repository history.

Objective-CmacOSlibgit2setup: easycomplexity 2/5

GitUp is a Mac application for working with Git, the version-control system that developers use to track changes to code over time. Most Git clients present history as a static log you scroll through. GitUp instead shows your repository as a live, interactive graph that you can directly manipulate: drag commits to reorder them, fold changes into earlier commits, or split one commit into several, all without typing commands.

The most notable feature is unlimited undo and redo for nearly every Git operation, including ones that are normally very hard to reverse, like a rebase or a merge. The app also takes automatic snapshots of your repository state, similar to how Time Machine backs up a Mac, so you can roll back to any earlier state with a single click. This makes it much harder to accidentally destroy work. The app also includes instant full-text search across the entire repository history, including the contents of every code change ever recorded.

GitUp was created in late 2014 and released as open source in August 2015. It works differently from most Git clients because it reads the Git database files directly from disk rather than running the git command in the background. This approach makes the interface noticeably faster, often faster than typing the equivalent commands in a terminal.

The project is available as a free download from the GitUp website or via Homebrew, a Mac package manager. It requires macOS and an Apple ID with a developer account if you want to build it yourself from the source code.

The underlying engine, called GitUpKit, is also available separately as a reusable framework. Developers building their own Mac or iOS tools that need to read or write Git repositories can use GitUpKit as a foundation. It wraps a C library called libgit2 but exposes a much cleaner API than that library provides on its own.

Where it fits