Skip to main content

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:

ButtonActionDescription
PushPush commitsSends local commits to the remote repository
PullPull changesFetches and merges remote changes
CommitOpen commit dialogOpens the commit popup for staging and committing
HistoryOpen history viewerOpens the paginated commit log
ExportExport gateway configExports tags, images, and themes to version control
RepoRepository settingsOpens 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

  1. Click Commit in the toolbar (or use the dockable Commit panel)
  2. 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
  3. Select the resources to include in the commit
  4. Write a commit message
  5. Click Commit
Metadata Filtering

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):

  1. Open the Commit popup or Commit panel
  2. Check Amend last commit
  3. The previous commit message is loaded for editing
  4. Select any additional resources to include
  5. 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:

  1. In the Commit panel, right-click a resource
  2. Select Discard Changes
  3. 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
Local-Only Repositories

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

OperationDescription
List branchesView all local and remote branches
Create branchCreate a new branch from the current HEAD or a specified starting point
Checkout branchSwitch to another branch — uncommitted changes are automatically stashed and restored
Delete branchDelete a local branch
Automatic Stash

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

  1. Double-click a commit (or select and click Details) to view its changed files
  2. 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:

  1. The popup lists all conflicting files
  2. 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
  3. 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

IssuePossible CauseSolution
Status bar shows "Not configured"Project not registeredClick the status bar to run the initialization wizard
Push rejectedRemote has new commitsPull first, resolve any conflicts, then push again
Push rejected after amendAmended a pushed commitUse force push when prompted (only if you are the sole contributor on the branch)
Authentication failure (HTTPS)Invalid credentialsVerify username and token — use a personal access token, not a password
Authentication failure (SSH)Invalid or missing SSH keyVerify the SSH key content and format in the credentials popup
Merge conflicts after pullDivergent changesUse the Merge Conflict popup to resolve each file, then complete the merge
Changes not appearingAuto-refresh delayClick the Refresh button in the Commit panel, or wait for the 15-second auto-refresh
Panels disappear after workspace switchUI refresh issuePanels re-appear automatically within 1 second via the visibility polling mechanism

Best Practices

  1. Commit often — Make small, focused commits with clear messages to maintain a clean history
  2. Fetch before pull — Use Fetch to review incoming changes in the History panel before merging
  3. Use branches — Create feature branches for new work and merge when complete
  4. Review diffs — Always review changes in the diff viewer before committing
  5. Configure per-remote credentials — When working with multiple remotes, set up credentials for each to avoid authentication issues
  6. Export gateway config — Regularly export tags, images, and themes to keep gateway configuration in version control
  7. Avoid force push on shared branches — Only force push on branches where you are the sole contributor