At the March 2016 meeting, our presenter Jimmy Cuadra gave an introduction to the version control system Git. He described the key concepts behind Git and cleared up common misconceptions. This meeting was summarized by Juan Lara.
What is Git? Git is a distributed version control system that saves the state of files. It’s the version control system most frequently encountered in new projects. Projects do not always use the “distributed” functionality of Git.
Why should writers care about Git? Git is the lingua franca of many developers. Also, Git is increasingly being used outside of software development. For example, you can use Git Hub Pages to run a blog.
What is a Git Blob? Git tracks the contents of a file and not the file itself. All content is stored in a Blob object.
What is a Git Tree? A git tree keeps track of the hierarchy of a repository. It can contain Git blobs or other git trees.
What is the Commit command? The Commit command creates a Git Commit which is a snapshot of files frozen in time. The command creates a tree of blobs using an ID and meta-data. The ID maps to the content in the blobs. One important concept to understand is that the ID directly maps to the contents of a file. Meta-data includes time, person creating the commit, and a commit message.
What is a Git Repository? A Git repository is a database of Git objects including a history of every commit.
What is a Git Branch? A branch is a named Commit. It’s the flagship feature of Git and developers love to branch all over the place. Branches allow you to work on a crazy idea without breaking the main project branch.