🤖 AI 생성 콘텐츠 — 이 글은 AI가 자료를 수집하고 초안을 작성했으며, 발행 전 누슘 운영자가 검수했습니다.
2005년 리누스 토발즈는 라이선스 분쟁으로 버전 관리 도구를 잃자 직접 git을 만들었다. 첫 커밋까지 걸린 시간과 이름에 얽힌 농담, 그리고 창조자가 넉 달 만에 손을 뗀 이야기.
지금 전 세계 개발자가 매일 쓰는 git은, 사실 한 남자가 도구를 뺏기고 홧김에(정확히는 어쩔 수 없이) 만든 대체품이었습니다. 만든 사람은 리눅스의 아버지 리누스 토발즈. 커널 개발에 쓸 수 있게 되기까지 걸린 시간은 약 열흘. 그리고 그가 첫 커밋에 남긴 프로젝트 소개는 — “지옥에서 온 정보 관리자(the information manager from hell)”였습니다. 오늘은 이 전설적인 ‘홧김 프로젝트’의 탄생 비화입니다.
2005년 봄, 사건의 발단 — BitKeeper를 잃다
2000년대 초 리눅스 커널 팀은 BitKeeper라는 상용 버전 관리 도구를 쓰고 있었습니다. 오픈소스 프로젝트에는 무료였지만, 도구 자체는 오픈소스가 아니었죠. 세계 최대 오픈소스 프로젝트가 상용 도구로 관리된다는 것 자체가 커뮤니티의 오랜 불편 지점이었습니다.
그러다 일이 터집니다. 삼바(Samba)의 개발자 앤드루 트리젤(Tridge)이 BitKeeper와 통신하는 도구를 역설계로 만들기 시작한 겁니다. BitKeeper의 라이선스는 역설계를 명시적으로 금지하고 있었고, 개발사 대표 래리 맥보이와 트리젤은 접점을 찾지 못했습니다. 토발즈는 훗날 깃허브와의 20주년 인터뷰에서 당시를 이렇게 회고했습니다. 두 사람은 “완전히 스펙트럼의 반대편에 있었고, 해결책이 나오지 않았다”고요. 결국 커널 팀은 BitKeeper를 계속 쓸 수 없는 상황으로 몰렸습니다.
재미있는 건, 흔히 알려진 “열흘 만에 만들었다”는 이야기에 토발즈 본인이 단서를 달았다는 점입니다. 코드를 쓴 건 열흘이 맞지만, 사실 그 전 해 겨울부터 넉 달 가까이 머릿속으로 설계를 굴리고 있었다는 겁니다. “BitKeeper보다 잘하되, BitKeeper와 같은 방식은 절대 쓰지 않는 도구”를 고민하면서요. 열흘의 기적처럼 보이는 것들엔 대개 보이지 않는 준비 기간이 있는 법입니다.

열흘의 코딩, 그리고 스스로를 커밋한 도구
2005년 4월 7일, 토발즈는 git의 역사상 첫 커밋을 남깁니다. 이 커밋이 멋진 이유는 따로 있습니다. git의 첫 커밋은 git 자신으로 기록됐습니다. 즉, 첫 커밋을 만들 수 있을 만큼의 git을 먼저 짜놓고, 그 git으로 git의 소스코드를 커밋한 거죠. 자기가 태어나는 장면을 자기가 촬영한 셈입니다.
첫 버전은 약 1만 줄. 토발즈 스스로 “복잡한 코드가 아니고, 에러 처리도 별로 없다”며 “한자리에서 다 읽을 수 있는 수준”이라고 인정하는 물건이었습니다. 지금 우리가 쓰는 git commit 같은 친절한 명령도 없었습니다. 초기엔 이른바 ‘플러밍(plumbing)’ 명령을 손으로 조합해야 했는데, 커밋 하나 만들려면 트리를 쓰고, 반환된 해시를 손으로 파일에 받아 적는 식이었습니다. 토발즈조차 셸 스크립트로 감싸 썼는데 “그래도 쓰기 어려웠다”고 회고할 정도였으니까요.
그런데 설계 철학만큼은 처음부터 확고했습니다. 첫째, 속도. 당시 커널 관리자였던 그에게는 패치 100개를 30초 안에 적용하는 성능이 양보 불가 조건이었습니다. 둘째, 분산. 모든 저장소가 평등하고, 특별한 중앙 서버가 필요 없는 구조. 셋째, 무결성. 모든 데이터를 해시로 보호해 저장소 손상을 즉시 잡아내는 것 — 토발즈는 SHA-1 채택이 “보안용이 아니라 손상 탐지용”이었다고 못 박았습니다. 이 세 가지 단순한 원칙이, 훗날 깃허브 같은 서비스가 “쉽게” 존재할 수 있는 토대가 됩니다.
‘지옥에서 온 정보 관리자’와 이름의 비밀
이 프로젝트의 유머는 첫 커밋 안에 박제돼 있습니다. 커밋 메시지부터 “Initial revision of ‘git’, the information manager from hell” — 지옥에서 온 정보 관리자의 최초 리비전. 함께 커밋된 README의 첫 줄은 이렇습니다. “GIT – the stupid content tracker(멍청한 콘텐츠 추적기).”
‘git’은 영국 속어로 ‘멍청한 녀석’ 정도의 뜻입니다. README는 이 이름의 뜻을 기분에 따라 골라 쓰라고 안내합니다. 기분이 좋고 도구가 잘 돌아갈 땐 “global information tracker(전역 정보 추적기)”, 도구가 말썽일 땐 차마 옮기기 어려운 욕설의 약자로요. 자기가 만든 도구의 공식 문서에 자기 도구 욕할 준비물까지 챙겨둔 겁니다. 이런 자기 비하 유머는 20년이 지난 지금도 git 공식 man 페이지에 남아 있습니다.

창조자는 넉 달 만에 떠났다
여기서 반전 하나. 이 세기의 도구를 만든 토발즈는 git 유지보수를 넉 달 만에 그만뒀습니다. 2005년 8월경, 프로젝트 초기부터 참여하던 하마노 준이오(Junio Hamano)에게 관리자 자리를 넘긴 겁니다. 석 달간 그의 패치와 코드 감각을 지켜본 뒤의 결정이었고, 하마노는 그 뒤 20년째 git을 이끌고 있습니다. 토발즈에게 git은 어디까지나 “커널로 돌아가기 위해 끝내야 했던 일”이었던 거죠. 본인 표현으로는 “git은 첫 해 안에, 사실 첫 몇 달 안에 내가 필요한 걸 다 해줬고, 그러자 흥미를 잃었다”고 합니다.
그 뒤의 이야기는 우리가 아는 대로입니다. 2005년 6월 커널 2.6.12 릴리스가 git으로 관리됐고, 2008년쯤 루비 온 레일스 커뮤니티가 git을 채택하면서 커널 바깥의 젊은 개발자들이 쏟아져 들어왔습니다. 토발즈는 작년 인터뷰에서 git이 버전 관리 시장의 98%를 차지한다는 보고서를 봤다고 언급하기도 했습니다. 그가 가장 아끼는 일화는 이겁니다 — 대학에 간 큰딸이 문자를 보내왔는데, 학교 전산실에서 아빠는 리눅스가 아니라 git으로 더 유명하다고요. 홧김에 열흘간 만든 사이드 프로젝트가, 35년 인생 역작의 명성을 넘어버린 순간입니다.
자주 묻는 질문 (FAQ)
Q. git은 정말 열흘 만에 만들어졌나요? A. 절반만 맞습니다. 코딩을 시작해 리눅스 커널 관리에 쓸 수 있게 되기까지가 약 열흘이었고, 토발즈 본인 회고에 따르면 그 전에 넉 달 가까이 설계를 구상하는 기간이 있었습니다. 첫 커밋은 2005년 4월 7일입니다.
Q. git이라는 이름은 무슨 뜻인가요? A. 영국 속어로 ‘멍청한 녀석’이라는 뜻입니다. 첫 README는 기분에 따라 “global information tracker” 등 여러 풀이 중 골라 쓰라는 농담을 담고 있으며, 공식 소개 문구도 “the stupid content tracker”입니다.
Q. 토발즈는 왜 BitKeeper를 버리고 git을 만들었나요? A. 커널 팀이 쓰던 상용 도구 BitKeeper가 역설계 논란 끝에 계속 쓸 수 없는 상황이 되자, 기존 오픈소스 도구(CVS 등)로는 성능과 분산 구조 요구를 채울 수 없다고 판단해 직접 만들었습니다.
Q. 지금 git은 누가 관리하나요? A. 2005년 8월경부터 하마노 준이오가 메인테이너를 맡아 20년째 프로젝트를 이끌고 있습니다. 토발즈는 초기 약 넉 달만 직접 유지보수했습니다.
Q. 토발즈가 자주 쓰는 git 명령은 뭔가요? A. 본인이 인터뷰에서 밝힌 바로는 사실상 다섯 개 — merge, blame, log, commit, pull 정도라고 합니다. git을 만든 사람조차 “매우 캐주얼한 git 사용자”라고 스스로를 소개합니다.
마치며
정리하면 — git은 도구를 잃은 커널 관리자가 넉 달 구상하고 열흘 코딩해 만든 대체품이었고, 창조자는 금방 손을 뗐지만 단순한 핵심 설계 덕분에 세상을 접수했습니다. ‘멍청한 콘텐츠 추적기’라는 겸손한(?) 이름과 달리 말이죠. 여러분이 오늘 무심코 친 git commit에는 이런 사연이 들어 있습니다. 프로그래밍 역사에서 더 듣고 싶은 이야기가 있다면 댓글로 알려주세요. 다음 역사 편에서 찾아뵙겠습니다.
참고자료
- GitHub Blog — Git turns 20: A Q&A with Linus Torvalds
- git 공식 저장소 — 최초 커밋 e83c516 (2005-04-07)
- Wikipedia — Git (History)
태그: #git #리누스토발즈 #프로그래밍역사 #버전관리 #리눅스 #오픈소스 #BitKeeper #깃허브

댓글을 남기려면 로그인이 필요합니다.
로그인하고 댓글 남기기