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
- Stage the files you want to include.
- Type a commit message in the message field.
- 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:
| Button | Action |
|---|---|
| Fetch | Download remote changes without merging |
| Pull | Fetch and merge (or rebase) from the tracking branch |
| Push | Push 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.
| Action | How |
|---|---|
| Checkout a branch | Click the branch name |
| Create a new branch | Click New Branch, enter a name, and press Enter |
| Delete a branch | Right-click a local branch and select Delete |
| Track a remote branch | Click 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:
- Click Stash Changes in the toolbar.
- Optionally enter a stash message.
- 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.