For any client that is looking to work with us on an ongoing basis, one of the first things we will discuss is setting up version control and a deployment strategy that leverages the power of version control to ensure that the right changes go live in the most seamless way possible.
Version control has many benefits but, as a business owner, the easiest one to grasp is that it allows anyone coming into your project to see clearly what previous developers have done. Even if it is the same developer, they may not remember every little change that has been made. By using version control the entire history of the project is at their fingertips.
Git Version Control
The version control system (VCS) that we prefer to use is Git. We have been using it internally for years. Git has really grown in popularity over the years, no doubt thanks to the fact that it is brought to us by the same people who brought us Linux itself. Sites such as Github have become such a corner stone of open source software development that it is hard to imagine working without them.
Git allows us to do plain version tracking very nicely. However, it also has many other very useful features that allow seamless collaboration between multiple teams. Git is also great at supporting multiple versions of an application, so that you can apply hot fixes to the live version and then switch back into developing a major new version.
Git also has something called submodules which, when used carefully, can be really useful when bringing in multiple sub projects under one master project.
Because Git is distributed, it allows you to have multiple teams working on separate tasks and, as long as one person is controlling everything and properly managing deployments, then this work can all be merged together into a controlled release that can be tested and finally deployed to live.