Usage
Designer Interface
The Git module adds several UI components to the Ignition Designer.
Toolbar
The Git toolbar provides quick access to the main operations:
| Button | Action | Description |
|---|---|---|
| Push | Push commits | Sends local commits to the remote repository |
| Pull | Pull changes | Fetches and merges remote changes |
| Commit | Open commit dialog | Opens the commit popup for staging and committing |
| History | Open history viewer | Opens the paginated commit log |
| Export | Export gateway config | Exports tags, images, and themes to version control |
| Repo | Repository settings | Opens the repository initialization/settings wizard |
Status Bar
Located at the bottom of the Designer, the status bar displays:
- Branch name (clickable) — Opens the branch management popup
- Remotes (clickable) — Opens the remote management popup
- User identity (clickable) — Opens the credentials/email editor
- Username — Current Ignition user
Committing Changes
Using the Commit Popup
- Click Commit in the toolbar (or use the dockable Commit panel)
- The resource list shows all uncommitted changes with:
- Resource name and type
- Change type: Added (A), Modified (M), Deleted (D), Untracked (U)
- Last modification author and timestamp
- 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):
- Open the Commit popup or Commit panel
- 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
Viewing Diffs
- Commit popup/panel: Double-click a resource to open the side-by-side diff viewer
- 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
Push, Pull & Fetch
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 dropdown appears
Pull
Fetches and merges remote changes into the current branch.
- Pulled changes are reflected immediately in the Designer
- Import options: tags, themes, and images can be imported during pull
- When multiple remotes are configured, a remote selector dropdown 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 dropdown 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 |
| Create branch | Create a new branch from the current HEAD or a specified starting point |
| 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 Popup / Panel
The commit history viewer provides a paginated list of commits with:
- Short commit hash
- Author name
- Commit date
- Commit message
- Branch and tag reference badges (color-coded)
Inspecting a Commit
- Double-click a commit (or select and click Details) 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
- Click View Diff to see both versions 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
Gateway Export
Click Export in the toolbar to export gateway configuration to version control:
- Tags — Tag provider configurations
- Images — Image resources
- Themes — Theme configurations
This ensures gateway-level configurations are tracked alongside project resources.
Dockable Panels
Commit Panel
An always-visible panel tabbed alongside the Project Browser:
- Shows all uncommitted changes at a glance
- Commit message textarea with Commit button
- Amend last commit checkbox
- Double-click a resource to view its diff
- Right-click context menu: View Diff / Discard Changes
- Auto-refreshes every 15 seconds with a manual Refresh button
- Persists across all workspace switches (Perspective, Vision, SFC, Scripting, etc.)
History Panel
An always-visible panel showing the commit log:
- Commit table with branch/tag ref badges (color-coded)
- Push, Fetch, and Pull buttons in the toolbar
- Double-click a commit to view its details
- Right-click context menu: Checkout / Revert
- Persists across all workspace switches
Troubleshooting
| Issue | Possible Cause | Solution |
|---|---|---|
| Status bar shows "Not configured" | Project not registered | Click the status bar 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) |
| Authentication failure (HTTPS) | Invalid credentials | Verify username and token — use a personal access token, not a password |
| Authentication failure (SSH) | Invalid or missing SSH key | Verify the SSH key content and format in the credentials popup |
| 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 the Refresh button in the Commit panel, or wait for the 15-second auto-refresh |
| Panels disappear after workspace switch | UI refresh issue | 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
- Configure per-remote credentials — When working with multiple remotes, set up credentials for each to avoid authentication issues
- Export gateway config — Regularly export 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