Usage
Designer Interface
The Git module adds a status bar and two dockable panels to the Ignition Designer.
Status Bar
Located at the bottom of the Designer, the status bar displays:
- Branch name — the current branch (or short commit hash with "(detached)" when checked out to a specific commit)
- Remotes (clickable) — opens the remote management popup
- Git credentials (clickable, user icon) — opens the User Credentials dialog; shows a verified icon when your identity is configured
Before a project is registered, the status bar instead shows a Configure button (launches the setup wizard) alongside the credentials button.
Dockable Panels
The Commit and History panels are tabbed alongside the Project Browser and stay visible across workspace switches (Perspective, Vision, SFC, Scripting, etc.). They are the primary way to drive the module — see Dockable Panels below.
Committing Changes
Using the Commit Panel or Popup
- Open the dockable Commit panel (or the Commit popup)
- The changes list shows all uncommitted changes with:
- Resource name and type
- Change type: Added (A), Modified (M), Deleted (D), Untracked (U)
- Select the resources to include in the commit
- Write a commit message
- Click Commit
The module automatically hides resource.json and thumbnail.png changes when no sibling source file in the same directory was also modified. This eliminates noise from Ignition's internal timestamp and thumbnail updates.
Amending a Commit
To modify the last commit (fix the message or add forgotten files):
- In the Commit panel or popup, check Amend last commit
- The previous commit message is loaded for editing
- Select any additional resources to include
- Click Commit — the previous commit is replaced (a message-only amend is allowed)
Viewing Diffs
- Double-click a resource to open the side-by-side diff viewer
- In the Commit panel, right-click a resource and select View Diff
- The diff viewer shows additions in green and removals in red with synchronized scrolling
Discarding Changes
To revert uncommitted changes:
- In the Commit panel, right-click a resource
- Select Discard Changes
- Tracked files are reverted to their last committed state; untracked files are deleted
Gateway Resource Snapshots
The Commit panel header has three snapshot buttons — Tags, Themes, and Images — that capture gateway-side resources into the project so they can be version-controlled:
- Tags — snapshots the gateway tag-provider state into project files
- Themes — snapshots the gateway Perspective theme files into the project
- Images — snapshots the gateway image manager state into the project
After a snapshot, the captured resources appear as normal file changes in the list below, so you can review them and select exactly which to commit.
Push, Pull & Fetch
Push, Fetch, and Pull are available from the History panel toolbar.
Push
Sends local commits to the remote repository.
- By default, only the current branch is pushed (no surprise pushes of experimental branches)
- If the remote rejects the push (e.g. after amending a pushed commit), a confirmation dialog offers force push
- When multiple remotes are configured, a remote selector appears
Pull
Fetches and merges remote changes into the current branch.
- Pulled changes are reflected immediately in the Designer
- When multiple remotes are configured, a remote selector appears
Fetch
Retrieves remote commits and updates remote-tracking branches without merging.
- After fetching, the History panel shows incoming commits with their remote ref badges
- Use this to review what changed before pulling
- When multiple remotes are configured, a remote selector appears
For repositories without a remote, push, fetch, and pull display a friendly warning instead of failing. Add a remote first via the Remotes manager.
Branch Management
Click the branch name in the status bar to open the branch management popup.
Available Operations
| Operation | Description |
|---|---|
| List branches | View all local and remote branches, with the current branch highlighted |
| Create branch | Create a new branch from the current HEAD |
| Checkout branch | Switch to another branch — uncommitted changes are automatically stashed and restored |
| Delete branch | Delete a local branch |
When switching branches, the module automatically stashes uncommitted changes on the current branch and restores any stashed changes on the target branch. This prevents losing work during branch switches.
Detached HEAD
When checking out a specific commit (from the History panel), the status bar shows the short commit hash with a "(detached)" indicator. Create a new branch from this state to preserve your work.
Commit History
History Panel
The dockable History panel shows the commit log for the current branch plus its upstream tracking branch (so fetched commits appear with remote ref badges before merge). Each row shows:
- Short commit hash
- Author name
- Commit date
- Commit message
- Branch and tag reference badges (color-coded)
Use Load More to page through older commits.
Inspecting a Commit
- Double-click a commit to view its changed files
- From the commit detail view, you can:
- View the diff of any changed file
- Checkout the commit (enters detached HEAD)
- Revert the commit (creates a new commit undoing the changes)
Context Menu
Right-click a commit in the History panel to access:
- Checkout — switch to this commit (detached HEAD)
- Revert — create a new commit that undoes this commit's changes
Merge Conflict Resolution
When a pull results in merge conflicts, a dedicated popup appears:
- The popup lists all conflicting files
- For each file, you can:
- Click Accept Ours to keep the local version
- Click Accept Theirs to accept the remote version
- View the conflict diff side-by-side
- Global actions:
- Accept All Ours / Accept All Theirs — resolve all files at once
- Abort Merge — cancel the merge and return to the previous state
- Complete Merge — finalize the merge after resolving all conflicts
Closing the merge popup prompts you to confirm aborting the merge, so the repository can't be left in a conflicted state by accident.
Dockable Panels
Commit Panel
An always-visible panel tabbed alongside the Project Browser:
- Shows all uncommitted changes at a glance
- Commit message field with Commit button and an Amend last commit checkbox
- Snapshot buttons in the header — Tags, Themes, Images — plus a Refresh button
- Double-click a resource to view its diff
- Right-click context menu: View Diff / Discard Changes
- Auto-refreshes every 15 seconds and after each Git operation
- Persists across all workspace switches
History Panel
An always-visible panel showing the commit log:
- Commit table with branch/tag ref badges (color-coded)
- Refresh, Push, Fetch, and Pull buttons in the toolbar
- Double-click a commit to view its details
- Right-click context menu: Checkout / Revert
- Load More pagination
- Persists across all workspace switches
Troubleshooting
| Issue | Possible Cause | Solution |
|---|---|---|
| Status bar shows "Configure" | Project not registered | Click Configure to run the initialization wizard |
| Push rejected | Remote has new commits | Pull first, resolve any conflicts, then push again |
| Push rejected after amend | Amended a pushed commit | Use force push when prompted (only if you are the sole contributor on the branch) |
| "Pick a credential" error | Remote has no credential, or the referenced credential was deleted | Open the Remotes popup and select a saved credential for the remote |
| Authentication failure (HTTPS) | Invalid credentials | Verify the username and token — use a personal access token, not an account password |
| Authentication failure (SSH) | Invalid or missing SSH key | Verify the SSH key content in the User Credentials dialog |
| Merge conflicts after pull | Divergent changes | Use the Merge Conflict popup to resolve each file, then complete the merge |
| Changes not appearing | Auto-refresh delay | Click Refresh in the Commit panel, or wait for the 15-second auto-refresh |
| Panels disappear after workspace switch | UI refresh timing | Panels re-appear automatically within ~1 second via the visibility polling mechanism |
Best Practices
- Commit often — make small, focused commits with clear messages to maintain a clean history
- Fetch before pull — use Fetch to review incoming changes in the History panel before merging
- Use branches — create feature branches for new work and merge when complete
- Review diffs — always review changes in the diff viewer before committing
- Centralize credentials — manage SSH keys and HTTPS credentials once in the User Credentials dialog and reference them from each remote
- Snapshot gateway resources — regularly snapshot tags, images, and themes to keep gateway configuration in version control
- Avoid force push on shared branches — only force push on branches where you are the sole contributor