A version control system permits multiple users to work collectively.
It maintains a history of every changes that can be tracked and reverted if needed.
Multiple users can work on the same files simultaneously, and conflicts can be merged together.
A version control is also useful for a single user to maintain and track changes.
Git is a free and open source distributed version control system.
Git can handle small and very large projects efficiently.
Git is distributed and do not require a central server.
GitHub is a popular web hosting service using Git, that was acquired by Microsoft.
GitHub provides several features:
- Code hosting
- Code reviews
- Project management
- Team management
GitHub Desktop is a free and open source client to work with GitHub repositories.
It is written in TypeScript and based on Electron.
GitHub Desktop is available for Windows and macOS.
Perforce is a server-based version control system now known as Helix Core.
It is the most popular version control system in large game studios.
Perforce provides a web client and clients for Windows, macOS, and Linux.
Users submit changed files together in changelists, which are atomic commits (all the files are committed, or none are).
Perforce can efficiently handle small and large files, and is used with source code and source assets.
Alienbrain is a server-based version control system for artists.
It is integrated with several applications such as Photoshop, 3ds Max, and Maya.
The UI is designed around graphical files, to streamline the artist's workflow.
Version control systems provides several features.
- Repository for source code and assets.
- History of file changes.
- Support for reverting previous changes to a specific revision.
- Metadata associated with changes (user, date, description...)
- Support for branches (main, dev, releases...)
Multiple users can work simultaneously on text files, and when conflicts occur, they can usually be merged automatically. Complex changes can be merge manually as well, as it generally the case with source code.
When working on binary files such as image assets, merging is not possible so these files are usually locked to prevent multiple users from making changes simultaneously.