Skip to content

Git Integration

Roubs edited this page Sep 17, 2026 · 1 revision

Git Integration

Tuim includes a built-in Git changes panel in the workspace sidebar. It lets you review diffs, stage and unstage files, and compose commits without leaving your keyboard or opening an external tool.


1. Opening the Git Panel

  • From the sidebar: Click < Workspace and select Git (or press Enter on Git in the sidebar).
  • From Command Palette: Press F1 โ†’ Git.

The Git panel displays all modified, added, deleted, and untracked files in your repository, grouped by staged and unstaged state.


2. Navigating Changes

Action Shortcut
Move up / down โ†‘ / โ†“ or j / k
Jump to first / last change Home / End
Open changed file Enter (opens the file in the editor)
Stage / Unstage toggle Space
Explicitly Stage file s or +
Explicitly Unstage file u or -
Return to Workspace Esc

3. Staging and Committing

  1. Open File: Highlight any changed file and press Enter. Tuim opens the file directly in the active editor buffer so you can review or edit it.
  2. Stage Your Changes: Press Space on the files you want to include in the commit. The file moves into the "Staged Changes" list. (You can also press s/+ to stage and u/- to unstage).
  3. Compose Commit: Press c. Tuim presents an inline commit message prompt:
    Commit message: [feat: add dark theme support               ]
    (Enter to commit, Esc to cancel)
    
  4. Finalize: Press Enter to execute git commit. Tuim updates the working tree status immediately. Press Esc to discard the message prompt without committing.

4. Background Refresh & Non-Blocking Updates

Git status monitoring in Tuim is powered by Tuim's background task runner (src/task_runner.zig):

  • Background status checks and diff computations run asynchronously on bounded worker threads, ensuring the UI and editor remain 100% fluid.
  • Interactive mutations (staging, unstaging, and committing) execute directly and immediately trigger a status refresh.
  • Generation counters ensure that slow or stale Git status completions are automatically discarded if your working tree state has changed in the meantime.

Next Steps

Learn how to manage plugins and browse the marketplace in Extensions & Plugins.

Clone this wiki locally