What is a Git (Linux speaking)?


What is a Git (Linux speaking)?

In: 23

Git is a source code repository. It allows multiple developers working on a project to manage their changes to a single codebase without stepping all over each others work. Changes are committed to the repository in a way that there is a log of each change, which can be undone if needed. There is a LOT more to it than that, but at its core that’s what it is.

Git was originally developed by Linus Torvals (who created Linux) to manage the Linux source code, but it is not directly related/dependent on Linux. Many, many developers use it for a wide variety of projects.

Git is a software management tool. A way to install software held on GitHub. It works similarly to Apt, PacMan, and other such tools.

Imagine I have ten people working on a project. Each person may be working on different things, they all could be working on the same thing, or anywhere in between.

For a software project, especially a large one, we need a tool to coordinate and log these changes. Otherwise, you could have a situation in which one person accidentally makes changes that mess up another person’s, a bad change is made that is difficult to weed out, etc.

Enter Git, a tool that allows users to retain their own copy of the entire code and sync it with the master copy. Because Git keeps track of these copies and when they are merged with a master copy, changes are easy to add, remove, and keep track of. This allows for large-scale coordination on software projects.

It a versionning tool (mostly for code).

When you’re working on a project, you want to be able to:
– go back at a previous point in time
– have multiple people working on the same document then merging their work together
– working on several version at the same time
– save document both on you computer to work on and on a company server for everyone to use

You could just save your document in a different file (Document_1, Document_1bis, Document_copy) and have them on your computer, on a company server and manually merge the work of multiple people, but it’s a nightmare to manage, especially for complex projects with many people working on it.

Instead git allows to do all of the above.
– You can save small changes in *commits*. git does not save the all file, just the changes.
– You can work on different *branches* aka versions of your document
– You can *merge* differents version to merge the work of different people together
– You can *pull* and *push* code between your computer and a company server aka *repository* (or a public one like github.com)

TL;DR: it’s a tool to store and manage versions of files and make it much easier to work with a lot of people.

In case it is not clear from other replies, Git and version/source control do not necessarily have anything to do with Linux.