To celebrate the 20th anniversary of the birth of 'Git,' Linus Torvalds reveals the behind-the-scenes details of the early development and frequently used commands

The version control software '
Git turns 20: A Q&A with Linus Torvalds - The GitHub Blog
https://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/
Git is version control software developed by Torvalds, the creator of Linux, and the first commit of Git was made on April 7, 2005 local time. At the time, the Linux kernel development project used ' BitKeeper ' as version control software, but Torvalds famously developed Git in just 10 days after BitKeeper became unusable due to licensing issues.
The first commit of Git is available in a mirror repository maintained on GitHub , and the commit message reads 'Initial revision of 'git', the information manager from hell.'

To celebrate the 20th anniversary of Git, GitHub interviewed Torvalds, and we've compiled some interesting highlights.
GitHub:
It's been 20 years since Git was able to write its first commit. Did you expect that after 20 years, we'd still be using it and talking about it?
Linus Torvalds (hereinafter, Linus Torvalds):
It was a big surprise to me how Git took the entire
At the same time, I saw CVS clinging to the market. Later SVN came along, but it was just another version of CVS. I really disliked CVS and didn't want to use it, so I thought I'd do it my way. Bitkeeper was no longer available, so I thought, 'I'm going to do it my way and not worry about what other people think.' Git was getting complaints for the first few months and years that it was 'hard to use' and 'unintuitive.' Then something happened. It was like a switch was flipped.
GitHub:
You mentioned BitKeeper, so can you elaborate on that? Torvalds famously developed the initial version of Git in about 10 days.
Linus Torvalds:
It took about 10 days for Git to actually be usable for Linux kernel development, but in all fairness, the whole Git development process started in November or December of 2004.
At the time, BitKeeper worked pretty well. It wasn't perfect, but it was much better than the other products I tried. However, it was commercial software, and it wasn't generally well received in the Linux kernel development community. Because (BitKeeper developer) Larry McVoy was a big supporter of open source, BitKeeper was free for open source projects. But McVoy also wanted to sell it to big companies. The fact that BitKeeper wasn't open source, and that it was used by one of the largest open source projects (the Linux kernel), was a kind of stumbling block for many people, including me.
I was hoping for an open source replacement for BitKeeper to emerge, but instead Andrew Tridgell 's BitKeeper reverse engineering project emerged. However, BitKeeper's license prohibits reverse engineering, which caused major problems. I engaged in private correspondence with McVoy and Tridgell to try to find a solution, but they were on completely opposing sides and no solution was reached.
So before I started writing any Git code, I spent four months thinking about how to do something differently and better than BitKeeper, because I didn't want to end up in a situation where McVoy would say, 'You did something you shouldn't have done.'
So, it took about 10 days of coding work before I actually started using Git, but I had a lot of time to think things through in my head.

GitHub:
So during the 10 days that you were developing that first version of Git, you were away from the Linux kernel and you were focused on Git. What was it like working solely on Git and not thinking about the kernel?
Linus Torvalds:
It was only two weeks, so it wasn't a big deal. I've only taken a few vacations in the last 35 years, but I've been away from kernel development for two weeks before.
One thing I learned while developing Git is that programming in user space is much easier (compared to developing the kernel). There are far fewer things to worry about. You don't have to worry about memory allocation and things like that.
GitHub:
When using Git, are there any tools you use together? I use ' tig '.
Linus Torvalds:
The only Git wrapper I've used is ' gitk '. And gitk was integrated into Git pretty early on. I still use Git with commands and don't use editor integration features. The editor I use (Editor's note: Torvalds uses ' MicroEMACS ') is so poorly featured that it can't integrate anything, let alone Git, so I don't do anything like that.
Every once in a while I'll look at my Git usage history to see what commands I'm using, and there are five commands I use a lot, three of which are 'git merge', 'git blame', and 'git log'.
GitHub:
What about the other two?
Linus Torvalds:
'git commit' and 'git pull'.
GitHub:
Linux came out about 34 years ago, Git came out 20 years ago, what's the next big thing? It's about 5 years too late (given how long it's been).
Linus Torvalds:
Every project I've had to make has been one I've had to make because I couldn't find 'something good that someone else has made.' I prefer to have other people solve my problems. If I have to come up with a project, it's a failure of the world. And it hasn't failed in the last 20 years.
I started making Linux because I needed an OS but there was nothing that satisfied me. I started making Git for the same reason. I also made a diving log software called '

Part of it is that I only have a certain way of doing things. I've been using the same editor (MicroEMACS) since college. My fingers learned it and I can't change it. I know the editor is no good anymore. It's a dead project that nobody uses anymore, so I'm maintaining it myself.
I have the source tree (for MicroEMACS) and compile it for myself every time I get a new machine. I've tried many new editors with source code coloring and so on, but every time I try, I feel like my hands are too old for this editor. So I hope that no project will come along that makes me think, 'I have to do this.'
The original GitHub page also contains many other behind-the-scenes stories about Git's development, from its early days to the present.
Related Posts:
in Software, , Posted by log1o_hf