Today we have dev teams that can number in the hundreds, some working from different countries remotely, all working on a single code base; making changes sometimes in the same file. Could you imagine passing around a thumb drive with your changes? Or constantly having to plug in new changes? Or someone deleting a critical file? Or changing some very complex code, forcing the team to go back in and do the same work all over again? What a nightmare. Enter version control. Version control software allows us to have many different people working on the same files very easily. It gives us the ability to put our changes into the code base (pushing or merging/pulling) easily, get updates and changes that others have made (pull or fetch), and allows us to make copies of the entire code base to work on instead of working on the "master" code. As an aside, Git is not the only version control software, but it is the only one I've used, and it is the only one I am