Why Git Version Control Is Essential for Automation Projects

Using Inductive Automation’s Ignition software as an example, I explain how Git transforms automation development by tracking every change in Ignition 8.3 and PLC projects, enabling safer collaboration and efficient troubleshooting.

Key Highlights

  • Traditional methods like dated ZIP files and shared network drives lack the structure and accountability needed for multi-developer automation projects. 
  • Git can work as a simple change monitor tracking a single folder or as a decentralized system with a central repository for comprehensive code review and collaboration. 
  • Even with binary programming files, Git can track exported XML, structured text and tag lists to maintain a clear history of logic changes and configurations.

When you start an automation project and you are the only one working on it, version control is not really an issue. If you break something, it is your responsibility. Add a second developer, and the two of you need to communicate, but version control is still probably not necessary. However, when managing changes from multiple contributors or addressing unexpected project issues, version control is essential.

Traditionally, automation engineers rely on manual backups, dated ZIP files or shared network drives to manage project versions. These methods are prone to human error and make it difficult to understand what changed, when and why. 

Git, on the other hand, provides structured version control, every change is recorded with context. It allows you to compare revisions, revert to known-good states and collaborate without overwriting each other’s work.

Git is a version control system that records every change made to a project through commits. Each commit captures a snapshot of the files at a specific point in time, along with details such as who made the change and why. This creates a complete, traceable history of the project’s evolution. Developers can compare versions, view differences and revert to earlier states if needed. In essence, Git provides a transparent, organized record of every modification, ensuring accountability and control over project changes.

Git and Ignition 8.3 from Inductive Automation work well together because Ignition stores projects as readable JSON and resource files. This structure lets Git track every change: scripts, views, tags and configurations. Developers can easily collaborate, compare versions and roll back updates. 

What Git does for automation project developers

Git can also manage PLC projects by tracking exported text-based files such as XML, structured text or tag lists. Each commit records changes in logic, configuration or documentation, providing a clear history. Even if the main PLC file is binary, Git ensures traceability, accountability and safer collaboration for control system development.

Git provides a reliable, traceable record of every change in Ignition projects and PLC logic. It enables safe collaboration, easy rollback and efficient troubleshooting, reducing errors and downtime in industrial control systems.

Git can be used in several different ways. By far the easiest is to have Git track a folder (the “/data” folder in Ignition or a project folder for PLC files). Everyone accesses the same files and commits are made periodically to document changes. Commits can occur whenever someone saves a file, daily or at the discretion of the project manager. If your goal is to monitor what has changed, this simple approach is usually sufficient.

You can also use Git in a decentralized way. A central repository serves as the single source of truth for all project code. Developers pull files from the repository, work on them locally and then push their changes back for review. Although more complicated to set up and use, this method provides complete details (who, what, when and why) on all changes made to the code base.

When code is stored in binary files (as in many PLC programming environments or Ignition versions before 8.3), using any version control can be challenging. Developers must export binary code to a text file to obtain meaningful information about changes. Git can track changes to binary files, but you will not be able to understand what changed.

As automation projects grow in complexity and involve more developers, it becomes increasingly important to track changes. Git provides a reliable, traceable record of every change in Ignition projects and PLC logic. It enables safe collaboration, easy rollback and efficient troubleshooting, reducing errors and downtime in industrial control systems.

Chris VanRemoortel is Solutions Architect at NeoMatrix Inc., a certified member of the Control System Integrators Association (CSIA). For more information about NeoMatrix, Inc., visit its profile on the Industrial Automation Exchange.  

About the Author

Sign up for our eNewsletters
Get the latest news and updates