Version control is a type of system that allows you to keep track of changes made to your code over time, and swap between them freely.
This means you can revert selected files back to a previous state, revert the entire project back to a previous state, compare changes over time, see when and by whom an issue may have been introduced , and more.
You can use local version control (as basic as saving a series of iterations of your code into a separate directory) or you use the more sophisticated centralized or distributed version control systems.
Git is a distributed version control system where clients don’t just check out the latest snapshot of the files; rather, they fully mirror the repository, including its full history. Thus, if any server dies, and these systems were collaborating via that server, any of the client repositories can be copied back up to the server to restore it. Every clone is really a full backup of all the data.
We can’t stress enough how important version control is in a research environment. This course will get you started on your most important git basics such as creating repositories, tracking changes, committing changes and dealing with merge conflicts.
Working with Git