DEV Community

Cover image for What is Git ?
Hadil Ben Abdallah
Hadil Ben Abdallah

Posted on

What is Git ?

History

Git is a VCS (Version Control System) created in 2005 by Linus Torvalds. The developer who started the Linux kernel.

What is a VCS ?

A Version Control System keeps track of the changes that we make to our files. By using a VCS, we can know when the changes were made and who made them. It also lets us easily revert a change if it turned out not to be a good idea.

What is Git ? 🤔

Git is a free open source system available for installation on Unix based platforms, Windows and macOS. Linus originally created git to help manage the task of developing the Linux kernel. This was difficult because a lot of geographically distributed programmers were collaborating to write a whole bunch of code. Linus had some requirements for the way that the system worked, and its performance that weren't being met by the VCS tools at a time. So he decided to write his own. 🤷‍♀️
Git is now one of the most popular version control systems out there and is used in millions of projects.
Unlike some version control systems that are centralized around a single server, Git has a distributed architecture. This means that every person contributing to a repository has full copy of the repository on their own development machines.

Collaborators can share and pull in changes that others have made as they need. And because the repositories are all local to the computer being used to create the files, most operations can be done really fast. If you want to collaborate with others, it usually makes sense to set up a repository on a server to act as a kind of hub for everyone to interact with. But Git doesn't rely on any kind of centralized server to provide control organizations to its workflow.

Git can work as a standalone program as a server and as a client. This means that you can use Git on a single machine without even having a network connection. Or you can use it as a server on a machine where you want to host your repository. And then you can use Git as a client to access the repository from another machine or even the same one.
Git clients can communicate with Git servers over the network using HTTP, SSH or Git's own special protocol. If you're curious about diving deeper into Git architecture or communication protocols, you can visit this link for more information.
So you can use Git with or without a network connection. You can use it for small projects with like one developer or huge projects with thousands of contributors. You can use it to track private work that you can keep to yourself or you can share your work with others by hosting a code on public servers like Github, Gitlab or others.
Are you starting to see how powerful Git can be ? 😉

When looking for information online you might notice that the official Git website is called git-scm.com. And wonder what's the SCM at the end for ? It's actually another acronym similar to VCS. It stands for Source Control Management. While both terms mean the same, we generally prefer VCS, because as we call that already, these systems can actually be used to store much more than just source code.
We chose to talk about Git for its popularity, multi platform support and robust set of features.

Git commands

Here are a few commands I've found super useful.
Image Credit : TheAlpha.Dev

Git is a developer's best friend, and these commands are the keys to unlocking its full potential. 🗝️

Conclusion

As with most things in the IT world, though, there are plenty of other tools that can be used to accomplish the same task. There are other VCS programs like Subversion or Mercurial.

Thanks for reading!

Made with 💙 by Hadil Ben Abdallah.

GitHub LinkedIn CodePen

Top comments (0)