본문 바로가기
제품

Git

Giten

2005년 리눅스 커널의 공동개발을 위해 시작된 분산 버전 관리 시스템. 프로그램 소스 코드와 문서가 언제, 누구에 의해, 어떤 이유로 바뀌었는지 기록하고 여러 사람의 작업을 합치는 자유 소프트웨어. 리누스 토르발스가 초기 구조를 만들었으며, 같은 해 주니오 하마노가 유지관리를 이어받아 국제적인 기여자 공동체와 함께 발전시킨 도구.

개발의 계기는 리눅스 개발진이 사용하던 상용 도구 BitKeeper의 무료 이용 중단. 수많은 개발자가 서로 다른 기능을 동시에 수정하는 리눅스의 특성 때문에 빠른 처리, 효율적인 브랜치 작업, 중앙 서버에 종속되지 않는 구조가 주요 목표였음. 2005년 4월 첫 커밋 이후 같은 해 말 1.0이 나왔으며, 처음부터 완성된 서비스였던 것이 아니라 실제 커널 개발 과정에서 기능과 사용법을 다듬은 프로젝트.

분산 방식의 핵심은 각 개발자의 저장소가 단순한 최신 파일 사본을 넘어 변경 이력도 보관한다는 점. 일반적인 복제에서는 이력을 자신의 컴퓨터에 가져와 인터넷 연결 없이 기록을 살펴보거나 새로운 변경을 저장할 수 있음. 이후 다른 저장소와 필요한 변경사항을 주고받는 구조로, 중앙 서버를 반드시 거쳐야만 모든 작업을 할 수 있는 방식과 차이가 있음. 다만 큰 저장소를 위한 얕은 복제와 부분 복제는 가져오는 이력이나 파일 객체의 범위를 줄이는 별도 선택지.

변경 기록의 기본 단위는 커밋. 특정 시점의 파일 상태를 가리키고 앞선 기록과 연결되며 작성 정보와 설명을 함께 담는 단위임. 파일을 편집한 뒤 곧바로 모든 내용을 기록하는 대신, 다음 커밋에 넣을 변경만 고르는 준비 영역을 거쳐 작업을 나눌 수 있음. 이러한 구조는 수정의 의도를 검토하거나 문제가 생긴 시점을 좁혀 찾는 기반.

브랜치는 별도 기능이나 수정안을 독립적으로 진행하는 작업 흐름. 파일 전체를 매번 복사하는 개념이 아니라 특정 커밋을 가리키는 가벼운 참조로, 여러 실험을 병행하고 완성된 결과를 합치기 쉽게 한 설계. 서로 다른 변경이 같은 부분을 건드리면 충돌이 발생할 수 있으며, 이때 어느 내용을 남길지 판단하는 일은 개발자의 몫.

Git과 GitHub는 서로 다른 대상. Git은 변경 이력을 관리하는 소프트웨어이며, GitHub와 GitLab 등은 이를 바탕으로 원격 저장소, 코드 검토, 이슈 관리와 자동화 기능을 제공하는 플랫폼. Git은 특정 호스팅 업체의 계정 없이도 로컬 컴퓨터나 자체 서버에서 사용 가능하며, 상용 플랫폼의 이용 조건과 Git 본체의 라이선스도 별개.

Git 본체의 라이선스는 GNU 일반 공중 사용 허가서 버전 2인 GPLv2. 소스 코드를 검토하고 수정·재배포할 수 있는 자유 소프트웨어로, 2010년 소프트웨어 프리덤 컨서번시에 합류해 비영리 지원 기반을 마련함. 한 회사의 완제품을 수동적으로 사용하는 방식에 머물지 않고, 여러 조직의 개발자가 유지보수와 성능 개선에 참여하는 공동개발 구조.

소규모 개인 프로젝트부터 거대한 기업 코드베이스까지 사용 범위가 확대되면서 성능 개선도 지속됨. 필요한 파일만 내려받거나 작업 공간에 펼치는 기능, 이력 탐색을 빠르게 하는 보조 자료구조, 여러 작업 디렉터리의 공유, 파일 변경 감시 등이 그 사례. 대용량 영상이나 데이터 파일에는 원본을 별도로 저장하는 Git LFS 같은 확장을 사용하기도 함.

내용에서 계산한 해시값으로 객체를 식별하므로 파일과 기록의 일관성을 확인하기 쉬운 구조. 그러나 해시는 데이터 암호화나 작성자의 신원 보증과 같은 뜻이 아니며, 비밀번호나 비밀키를 저장해도 안전해지는 것은 아님. SHA-1의 약점에 대응하는 탐지 기능과 SHA-256 지원, 커밋 서명과 저장소 소유자 확인 등 서로 다른 층위의 보완이 이어진 배경.

널리 쓰이는 도구가 됐지만 사용법이 단순한 것만은 아니었음. 여러 역할을 하던 checkout을 switch와 restore로 나누거나, 초기 브랜치 이름을 설정하도록 하고, 특정 이력 수정 작업을 별도 명령으로 제공하는 등 이해와 실수를 줄이기 위한 변화가 지속됨. 새 기능의 실험 단계와 안정 단계, 호스팅 서비스별 지원 시점이 서로 다를 수 있는 점도 특징.

한국어를 포함한 여러 언어의 《Pro Git》 번역이 공개돼 비영어권 개발자의 학습을 지원함. 한국어 학습 자료를 통해 버전 관리의 기본 개념을 익히고 국제 오픈소스 프로젝트의 공동개발에 참여할 수 있도록 돕는 기반.

23 타임라인
29 관련 링크
Git

타임라인 23건 · 2005–2026

밀집 구간

구간을 선택하면 해당 기록으로 이동합니다.

보기
간격이 실제 시간에 비례합니다. 기록이 없는 구간은 길수록 멀리 벌어집니다.
수록 이벤트 분포 점을 선택하면 해당 이벤트로 이동할 수 있습니다.
2005년 2026년
갱신 2026-10-18