From Thesis:
Currently, IGC does not have a direct implementation of version control. We satisfied the version control condition by making everything file-based and allowing the user to use their own version control system. However, it would be beneficial to have a direct implementation of version control in IGC, as is the case with many IDEs.
Two examples of an implementation are from Kery et al.: Verdant [9] and Variolite [7]. Verdant is a cell versioning tool, and Variolite promotes exploratory programming features through code cells that can have ‘variants’. This would allow the user to see the history of a node, see what changes have been made, and potentially revert to an older version of a node. This would be a very useful feature for many users.
From Thesis: