Git Source Control

Stage, commit, branch, stash, and view history with a full visual Git workflow built into the sidebar.

Desktop only. Git integration is not available in the web app.

The Git panel gives you a complete Git workflow without leaving Omnilib. Stage files, write commit messages, manage branches, stash changes, and explore your commit history — all from the sidebar.

Opening the Git panel

Click the Git icon in the sidebar (branch icon) to open the Git panel. If the current project is not a Git repository, the panel offers the option to initialize one.

Initializing a repository

If no .git directory exists in your project, click Initialize Repository in the Git panel. Omnilib runs git init in the project root and shows the initial state with all files as untracked.

Staging changes

The panel shows three sections:

  • Staged — Files queued for the next commit
  • Unstaged — Modified files not yet staged
  • Untracked — New files not yet tracked by Git

Stage individual files

Click the + icon next to any unstaged or untracked file to stage it.

Unstage files

Click the icon next to any staged file to remove it from the staging area.

Stage or unstage all

Click Stage All or Unstage All at the top of each section to act on all files at once.

Committing

  1. Stage the files you want to include.
  2. Type a commit message in the message field.
  3. Click Commit, or press Cmd+Enter (Windows: Ctrl+Enter).

Amend the last commit

Enable Amend in the commit area to fold staged changes into the most recent commit and optionally edit its message.

AI commit message generation

Click the Sparkles button next to the message field to generate a commit message from your staged diffs. The AI reads the diff and writes a concise, conventional-style message. Edit it before committing if needed.

Fetch, pull, and push

The toolbar at the top of the Git panel includes:

ButtonAction
FetchDownload remote changes without merging
PullFetch and merge (or rebase) from the tracking branch
PushPush commits to the tracking remote

Omnilib detects the upstream tracking branch automatically. If no upstream is set, the Push button prompts you to set one.

Branch management

Open the Branches section in the Git panel to see all local and remote branches.

ActionHow
Checkout a branchClick the branch name
Create a new branchClick New Branch, enter a name, and press Enter
Delete a branchRight-click a local branch and select Delete
Track a remote branchClick a remote branch to check it out and track it locally

The current branch name is always shown at the top of the Git panel.

Stash

Click Stash to save your current working directory changes without committing:

  1. Click Stash Changes in the toolbar.
  2. Optionally enter a stash message.
  3. Click Save. Changes are removed from the working directory and saved to the stash list.

To restore a stash, open the Stash section, hover over an entry, and click Pop (apply and remove) or Apply (apply and keep). Click Drop to discard a stash entry.

Remote management

Open the Remotes section to view all configured remotes with their fetch and push URLs. This is a read-only view — edit remotes using the terminal if needed.

Commit log

Open the Log section to see recent commits. Each entry shows:

  • Commit hash (abbreviated)
  • Commit message
  • Author name
  • Relative timestamp
  • Files changed (expandable)

Click a commit to see its full message and file list.

Git graph panel

Click Graph in the Git panel toolbar to open the visual branch graph. The graph shows all local branches as colored lines with commit dots, merge points, and branch labels. Hover over a commit dot to see its message and author.

Git diff panel

Click Diff in the Git panel toolbar to open the diff viewer. It shows a GitHub-style side-by-side diff for:

  • Staged — What will be included in the next commit
  • Unstaged — Changes not yet staged

Click any file in the staging sections to jump directly to its diff.

.gitignore quick actions

Right-click any untracked file or folder in the Git panel and select Add to .gitignore to append an entry to your .gitignore file. The .omnilib/ folder (Omnilib's project metadata directory) can be ignored with one click: look for Ignore .omnilib/ in the quick actions menu at the top of the Untracked section.