Skip to main content

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

  1. Open the dockable Commit panel (or the Commit popup)
  2. The changes list shows all uncommitted changes with:
    • Resource name and type
    • Change type: Added (A), Modified (M), Deleted (D), Untracked (U)
  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. In the Commit panel or popup, check Amend last commit
  2. The previous commit message is loaded for editing
  3. Select any additional resources to include
  4. 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:

  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

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
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, with the current branch highlighted
Create branchCreate a new branch from the current HEAD
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 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

  1. Double-click a commit 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
    • View the conflict diff 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
Closing the window

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

IssuePossible CauseSolution
Status bar shows "Configure"Project not registeredClick Configure 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)
"Pick a credential" errorRemote has no credential, or the referenced credential was deletedOpen the Remotes popup and select a saved credential for the remote
Authentication failure (HTTPS)Invalid credentialsVerify the username and token — use a personal access token, not an account password
Authentication failure (SSH)Invalid or missing SSH keyVerify the SSH key content in the User Credentials dialog
Merge conflicts after pullDivergent changesUse the Merge Conflict popup to resolve each file, then complete the merge
Changes not appearingAuto-refresh delayClick Refresh in the Commit panel, or wait for the 15-second auto-refresh
Panels disappear after workspace switchUI refresh timingPanels 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. Centralize credentials — manage SSH keys and HTTPS credentials once in the User Credentials dialog and reference them from each remote
  6. Snapshot gateway resources — regularly snapshot 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