How did Git get its name?
In this article, we will discuss why Linus Torvalds, the creator of Git, chose this name for his Version Control System (VCS).
What is the meaning of Git?
When Linus Torvalds made his initial commit of Git's code on April 7th 2005, he added a file called
README. The first paragraph in this file reads:
GIT - the stupid content tracker "git" can mean anything, depending on your mood. - random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant. - stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang. - "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room. - "goddamn idiotic truckload of sh*t": when it breaks This is a stupid (but extremely fast) directory content manager. It doesn't do a whole lot, but what it _does_ do is track directory contents efficiently.
As we can see from the paragraph above, Linus kindly offers multiple explanations for Git's meaning:
- The first reason could be viewed as one of practicality. A three letter command is quick and easy to say and type.
- The word "Git" is not used by any other existing Unix command.
- The initial working version of Git's code was very simple, so much so that he finds it deserving of insult.
- An acronym for Global Information Tracker, at least when it works properly.
- An acronym for Goddamn Idiotic Truckload of sh*t, when it doesn't work properly.
Using these five reasons for choosing the name "Git", we can try to answer the question "What does Git stand for?". It appears that Linus Torvalds wanted to make the point that a simple solution can solve a big and important problem. He also tried to acknowledge that there was much work to be done to build Git into a fully featured tool that could be truly useful for developers. After years of development, maybe the current version of Git isn't so stupid after all...