2002년 리눅스 커널 — 수천 명의 기여자와 수천 개의 병렬 변경 흐름 — 은 버전 관리를 위해 독점 소프트웨어인 BitKeeper를 도입했다. 2005년 커널 커뮤니티와 BitKeeper 제작사 사이의 관계가 틀어지고, 그 도구의 무료 사용 지위가 철회되면서, 세계 최대의 협업 소프트웨어 프로젝트는 핵심 작업 도구를 잃게 되었다.

속도와 수천 개의 병렬 브랜치를 위해 만들어진 분산 VCS — 모든 클론이 완전한 저장소이며, 커널 자체의 데이터 구조처럼 설계되었다.

토발즈가 직접 첫 버전을 작성했다: 최초 커밋은 2005년 4월 7일에 'Initial revision of "git", the information manager from hell'이라는 메시지와 함께 기록되었으며, 일곱 개의 명령을 노출하는 몇 개의 C 파일이었다. BitKeeper의 교훈에서 끌어낸 설계 목표는 속도, 단순한 설계, 비선형 개발에 대한 강력한 지원, 완전한 분산이었다. 2005년 7월 26일 그는 유지 관리를 주니오 하마노에게 넘겼고, Git 1.0은 2005년 12월 21일에 출시되었다.

Git은 대부분의 개발자가 사용하는 버전 관리 시스템이 되었다: 2022년까지 거의 95%의 개발자가 자신의 주 버전 관리 시스템으로 Git을 꼽았으며, 주요 소프트웨어 포지 — GitHub, GitLab, Bitbucket — 는 Git을 중심으로 구축되어 있다. 한 프로젝트의 워크플로를 위해 작성된 내부 도구가 전 세계 협업 소프트웨어 개발의 기반이 되었다.

리눅스 커널은 수천 명의 기여자가 수천 개의 병렬 변경을 만들어 내며 개발되기 때문에 버전 관리가 유난히 어렵다. 2002년 이 프로젝트는 제작사가 무료 사용을 허용한 독점 분산 시스템인 BitKeeper를 도입했다. 2005년 그 관계가 틀어지고 무료 사용 지위가 철회되면서, 커널 커뮤니티 — 무엇보다도 리누스 토발즈 — 는 모든 작업을 담고 있던 도구를 대체해야 했다.

토발즈의 답은 대체품을 직접 작성하는 것이었다. 2005년 4월 7일의 최초 커밋은 눈짓을 곁들여 스스로를 알린다: 'Initial revision of "git", the information manager from hell.' 그것은 일곱 개의 저수준 명령을 노출하는 작은 C 파일 모음이었고, 커널과 같은 아이디어를 중심으로 구축되었다: 속도 우선, 단순한 설계, 비선형 개발을 위한 값싼 브랜칭, 그리고 저장소의 모든 사본이 완전한 이력을 지니도록 하는 완전한 분산.

그것은 빠르게 사적인 도구이기를 그쳤다. 주니오 하마노는 몇 주 안에 합류하여 2005년 7월 26일 유지 관리를 넘겨받았고 — 토발즈는 그것을 영원히 돌볼 생각이 없었다 — Git 1.0은 2005년 12월 21일에 출시되었다. 그로부터 그것은 커널을 완전히 벗어났다: 2022년까지 거의 95%의 개발자가 Git을 자신의 주 버전 관리 시스템으로 꼽았으며, 현대 오픈 소스를 조직하는 포지 — 그중 GitHub과 GitLab — 는 핵심에 Git 서비스를 두고 있다.

그것은 버전 관리를 성능 문제로 다루었다: 속도가 첫 번째 목표였는데, 사람들이 기다려야 하는 도구는 사람들이 우회하는 도구이기 때문이다.

완전한 분산은 모든 개발자가 전체 이력을 지니게 했다 — 단일 장애점이 없고, 아이디어와 로컬 실험 사이에 권한의 문이 없었다.

브랜칭은 값비싼 부작용이 아니라 일급 연산이었기에, 병렬 작업 흐름은 무언가를 시도하는 값싸고 일상적인 방식이 되었다.

그것은 시장 평균이 아니라 이용 가능한 가장 어려운 실제 작업 부하 — 커널의 규모 — 를 상대로 구축되었고, 바로 그렇기 때문에 그토록 잘 일반화되었다.

의존하는 도구를 잃는 것은 선물이 될 수 있다. 토발즈는 자신의 가장 어려운 사례 — 거대한 이력, 수천 개의 병렬 브랜치 — 를 위해 만들었고, 가장 어려운 사례에 맞는 설계는 대개 모두에게 맞는다.

주니오 하마노는 2005년 7월 그 인수 이후로 Git의 유지 관리자였으며, 토발즈도 여전히 기여하고 있다. 20년이 지난 지금, 최초 커밋에 대한 GitLab의 2025년 회고는 'information manager from hell'이라는 문구를 있는 그대로 — 거의 모든 소프트웨어가 이제 통과하는 인프라 계층의 창립 농담 — 이라고 부른다. BitKeeper 자체는 2016년에 오픈 소스화되었고 각주에 불과하다; Git이 기본이다. 커널 프로젝트의 위기 대응은 채택 면에서 지금까지 만들어진 가장 성공적인 내부 도구로 밝혀졌다.

근거 확인하기

출처

  1. A Short History of Git Pro Git book (git-scm.com) · git-scm.com
  2. A journey through Git's 20 year history GitLab blog · about.gitlab.com ·
  3. Git Wikipedia · en.wikipedia.org