GitHub

Git

Loxel’s git tooling is split across three panels that work together: the commit graph (an interactive DAG), the Changes panel (working tree and commit diffs), and the Branches panel (branch operations). Together they cover everything from staging a hunk to cherry-picking a range of commits.

Open the git graph with . The Changes panel is .


Commit graph

The graph shows the full commit DAG for the active worktree, with branch and tag labels on each ref.

Selecting commits

Click a commit to select it. The Changes panel updates immediately to show what changed in that commit.

  • Cmd+Click (macOS) or Ctrl+Click (Linux/Windows) — add or remove individual commits from the selection
  • Shift+Click — select a contiguous range from the last-clicked commit to the one you shift-clicked

Multi-select is useful for cherry-picking or reverting a group of commits, and for reviewing the combined diff across a range.

Uncommitted changes row

A virtual row sits just above the current branch tip whenever your working tree has staged, modified, or untracked files. It shows:

  • An edit icon indicating it represents work in progress
  • An italic summary: “X staged, Y modified, Z untracked”

This row has no context menu and cannot be checked out. Select it to see the working tree diff in the Changes panel, the same as selecting no commit at all.

Filtering the graph

Use the filter controls in the graph toolbar to narrow what’s displayed.

FilterOptions
BranchMulti-select dropdown — show commits reachable from any selected branch
AuthorMulti-select — limit to commits by specific authors
Date”All time”, “Today”, “Last 7 days”, “Last 30 days”
Display preset”All branches”, “Current + main”, “Recent N days”

Branch and author filters are both multi-select — you can pin several branches or authors at once.

Context menu operations

Right-click a selected commit (or range) for available operations:

OperationSingle commitMulti-select
CheckoutYesNo
Create branchYesNo
Cherry-pickYesYes
RevertYesYes
Reset (soft / mixed / hard)YesNo

Reset always shows a confirmation dialog before executing. See Reset below for the three modes.


Changes panel

The Changes panel shows different content depending on your selection in the commit graph.

No commit selected: shows the working tree — staged files, unstaged modifications, and untracked files. This is where you stage and unstage changes before committing.

One or more commits selected: shows the diff for that commit or range. A dropdown in the panel header lets you switch between:

  • Local changes — your working tree diff
  • All branch changes — all changes from the branch tip back to the merge base with main
  • A specific commit or range from the current selection

Staging

File-level staging

Right-click any file in the Changes panel when no commit is selected:

  • Stage — move the file to the staged set
  • Unstage — move it back to unstaged
  • Discard changes — revert the file to HEAD (shows a confirmation dialog before executing)

Hunk-level staging

Stage or unstage individual hunks from the diff viewer’s unified view. Switch to unified mode with the toggle in the diff toolbar, then use the hunk action buttons that appear inline next to each hunk header.

Note: Hunk-level staging is available in unified view only. The side-by-side split view does not currently support per-hunk staging. See the Diff Viewer page for more on the two modes.


Branch operations

The Branches panel lists all local (and optionally remote) branches. Operations are available via the context menu on any branch row, or via the buttons in the panel header.

OperationHow to triggerNotes
CreateButton in panel header or context menuEnter a name; the branch is created from the current HEAD
CheckoutContext menuDisabled when the branch is already current
RenameContext menuShows a prompt dialog with the current name pre-filled
DeleteContext menuIncludes a force-delete option for branches with unmerged changes
FavoriteStar icon on the branch rowFavorites are pinned to the top of the branch list

Upstream tracking is displayed in the status bar as ↑ X ↓ Y — commits ahead of upstream on the left, commits behind on the right. The current branch name appears next to it.


Reset

Reset moves the current branch pointer to a selected commit. There are three modes:

ModeLabelEffect on staged and working tree changes
Soft”Keep staged”Staged changes remain staged; working tree unchanged
Mixed”Unstage”Staged changes become unstaged; working tree unchanged
Hard”Discard all”Both staged and unstaged changes are discarded

Note: A confirmation dialog always appears before a reset executes, regardless of mode. Hard reset is irreversible — loxel does not offer an undo for it.


Cherry-pick and revert

Both cherry-pick and revert work on single or multi-select.

Cherry-pick applies the selected commits to the current branch in order. Select the commits in the graph, right-click, and choose Cherry-pick.

Revert creates new commits that invert the selected commits. Reverting a range creates one revert commit per selected commit.


Keyboard shortcuts

Git operations in loxel are mouse-driven — there are no dedicated keyboard shortcuts for individual git actions. Use the panel shortcuts to keep your hands on the keyboard while navigating:

ActionShortcut
Open git graph
Open Changes panel

Once you have a diff open, see Code Review to leave anchored comments on the changes.


See also

  • Diff Viewer — full reference for split/unified modes, synchronized scrolling, and hunk-level staging
  • Code Review — starting a review session and leaving anchored comments after viewing a diff