Reading Why Git?

Last updated: January 4, 2023

Why version control?

from Geek&Poke

Without dedicated versioning tools, many people instinctively use some form of DIY version control by saving copies of important files at various stages of development.

The extremely organized may have a system including the date in the names of those file versions. This is tedious to maintain and really hard to work with.

For those who are not extremely organized however, it is pure chaos. I'm sure you know what I'm talking about.

Version control systems make versioning projects—that is, archiving multiple versions of projects into a history—part of a reasonable workflow that does not involve a confusing collection of files swamping your folders.

They automatically record consistent information whenever you archive versions. They also offer easy ways to navigate projects histories, compare versions, or revert files to earlier states.

Here comes Git

Git is an open source distributed version control system (DVCS) created in 2005 by Linus Torvalds for the versioning of the Linux kernel. For the past 10 years, it has dominated the version control system world.

And for very good reasons: Git is extremely powerful. Well, if one knows how to use it that is…

from xkcd.com

Easy experimentation

Branches provide an easy way to experiment with a project without risking to mess up the stable branch of development. They also allow for multiple developments to happen in parallel without interfering with each other.

Backup tool

External remotes on a server or on the web (e.g. GitHub, GitLab, or Bitbucket) provide an easy way to backup a project and its history.

by jscript

Collaborative tool

With easy branching and merging, Git is a great collaboration tool: team members can work on separate branches without stepping on each other's toes, then integrate their work into the main branch.

Finally, thanks to Git's distributed nature, everybody has the full project history on their machine. This is more secure (redundancy) and access to the internet/network is only needed to upload/download data to/from the remote.

Comments & questions