Volt
00000000

Guide

A Git client for Mac, inside your editor

A Git client is a second application to keep open beside the editor, a second view of the same files, and a round trip every time a commit needs one more fix. Here is what the separate clients do well, and what it is like when the repository window is part of the editor.

The usual choices

The command line does everything and shows you very little. GitHub Desktop and Sourcetree are free; Fork and Tower are polished paid clients with the deepest feature sets — interactive rebase, a history graph, every operation Git has. What all of them share is that the code is somewhere else: you read a diff in one window and fix the line in another.

Git ▸ Repository… in Volt

One window per repository (⇧⌘0), with four panes.

Changes. Tick a file to stage it, or put the caret in one change and Stage This Hunk — or Discard This Hunk, which throws away that change on its own and nothing else. Write the message, amend the last commit if that is what it is, and commit with ⌘↩.

History. The whole repository or a single file, a commit at a time, with the files each commit touched and the difference for whichever you pick. Search it by message, open any version, or put a file back exactly as a commit left it.

Branches. Local ones and those only on the server, how far each is ahead or behind, and switch, start or delete one.

Stash. Put the working copy aside — new files included — read what is in it before deciding, and give it back, keeping it in the list or not.

The window reads the repository again when it comes forward, so a commit made in a terminal is never shown stale.

In the file you are editing

  • Change bars in the gutter and down the scroller: added, modified, and a wedge where lines went.
  • Stage This Change from the editor, and Revert Change to put one back as an ordinary, undoable edit.
  • Blame in the gutter, or for just the line you are on.
  • Compare with Revision… — then and now, rows aligned, with Take Left to bring a difference back.
  • Git ▸ History… for this file, a commit at a time.
  • Conflicts walked one by one: keep what is here, what arrived, or both.
  • Fetch, Pull and Push, with what is waiting said in one line.
  • The file list marks what has changed, with a letter beside each name.

What it deliberately leaves out

Merge, rebase and reverting a commit are decisions about the history, and they belong in a tool that shows all of it. A pull that would have to merge is refused in Git's own words rather than made for you. If you rebase every day, keep your client for that and let the editor do the rest.

Questions

Can I stage part of a file?

Yes. Put the caret in a change and Stage This Hunk, from the repository window or from the editor itself, and Unstage takes it back out.

Does it show the history of a single file?

Yes, a commit at a time with what each one changed in it, and any version can be opened, compared or restored.

Can it resolve merge conflicts?

Yes. Git ▸ Conflicts walks through them in the editor and keeps what is here, what arrived, or both.

Does it merge or rebase?

No, on purpose. A pull is fast-forward only, and one that would have to merge is refused with Git's own explanation.

Do I need Git installed?

Yes. Git has to be on the Mac — from Apple's Command Line Developer Tools or from Homebrew — and Volt says plainly when it is not.

Does it work outside a repository?

The change bars do: a file Git knows nothing about is marked against its saved self, so you still see what you changed since opening it.

Open your repository

Volt is in free beta. Download it now — no account, no sign-up — and try it on the file you have in mind. Each build runs for seven days, and every update gives another seven.

Download Volt for Mac

macOS 13 or later, Apple silicon. About 8 MB, signed and notarised. Everything it does · what changed in this build.

Related