Git Good at Programming

15 Sep 2016

Git and GitHub

Configuration management is a way of managing changes to software. Being able to keep track of these changes is critical in creating large software systems. Git is a popular source control management tool that can be used locally to manage changes to a given repository. GitHub is a hosting platform for Git repositories where users can sign up for an account, view others’ code, contribute to projects with other users, and even host small websites like this site you’re looking at right now.

I think Git’s popularity is due to the popularity of GitHub. In the world of software engineering where a lot of work is done in teams, it is extremely crucial that team members have a unified development style and an efficient way of working on and testing experimental changes. With the invention of GitHub, Git, which is used for local source control, can be used to share code with others and can even be used to manage team projects.

My Experiences with Configuration Management

I have used Git and GitHub to manage my own files but have not used it to manage changes on large software projects with multiple contributors. When I first heard about Git and GitHub, I didn’t rush to use them although in hindsight I wish I did. Prior to finally deciding to adopt a formal version control tool, I resorted to creating local copies of my project and denoted versions by using names such as “filename-1, filename-2” and so forth. The comic below illustrates my former inefficient method of version control.

Source

However, I eventually turned to using Git and GitHub when working on a large embedded software project where the workflow was centered around pull requests and code reviews. I am very glad I opened my eyes to using Git and GitHub. It is a much cleaner solution to version control than creating multiple copies of a file as incremental changes are made. It allowed me to work on experimental changes for larger team projects without having to worry about breaking the entire project. In addition to allowing me to safely develop these experimental changes, I was also able to safely merge these changes into the main code base. Also, thanks to GitHub, I can access my code remotely.

Overall, though there was an initial overhead associated with learning how to use Git and GitHub, these two tools have really proved valuable in allowing me to manage my own code and contribute to team projects.