Version control systems (VCS) are used in particular for software development in a team or alone. They enable several parties to work on a project at the same time using the "copy-change-merge" model and also provide a convenient way of versioning so that you can always jump back to any point in the development process. git has some special features here, primarily because it is a distributed VCS, which means that each developer usually has a local repository first, which they can then synchronize with other repositories in the network.