I was watching Brent’s webcast session on GitHub recently. I’ve struggled to explain this to users in the past, and it’s always good to see what others do when they do similar sessions.
In any case, what’s the deal with Git, et al?
Git is a version control system (VCS). If you’ve ever used TFS for code, or Visual SourceSafe or Subversion, Perforce, CVS, etc., they are all methods of tracking versions of files. Usually for code, but could be for any files. Binaries don’t work as well, but any text, and plenty of people use a VCS for book projects.
While git (or Git) is a VCS, there are various companies that provide git hosting services. GitHub is the most well known, now owned by Microsoft. This means that they provide essentially a remote file service for git projects. Since git is a distributed VCS, this means that you can have multiple copies of your git repository (folder) and sync back and forth. Like DropBox, but with programming code versions.
BitBucket, GitLab, Beanstalk, Codebase, etc. are all hosting services. You could duplicate the git portion of hosting with a VM in Azure, AWS, etc. However, these services provide a few other things. They include some features like security, clients, and pull requests. A pull request is a method of notifying people to review your code before it merges, and it’s a fantastic team feature. It’s in git, but it’s cleaner with a service.
I tend to use Azure DevOps for my git hosting, but I do have repos at GitHub as well. I’ve tried BitBucket, and really they all feel the same. I get used to a GUI or CLI push/pull of code and then it doesn’t matter.
If you’ve never tried using git for code, give it a try today. I’ll get more content and videos up soon, so watch for those.