코드 버전 관리 프로그램
여기서 버전 관리란,
대학 과제 제출시에
발표자료
발표자료(수정)
발표자료(수정1)
발표자료(최종)
발표자료(최종끝)
발표자료(진짜최종)
과 같이 해본 적이 있지 않나?
이전에 있던 파일을 혹시몰라 남겨둔 채로 새로운 작업을 할 때가 많다.
그리고 이 와중에도 무엇이 달라졌는지 변경점을 알고 싶다면 파일을 하나하나 열어봐야 하는데,
이를 막기 위해서는 버전 관리가 필요하다
버전관리란 파일의 변화를 시간에 따라서 기록했다가
나중에 특정 시점의 버전을 꺼내올 수 있는 방법이다.
버전관리의 장점은
1. 지난 과정을 확인 가능하다는점 (어떤 변경점이 있었는지)
2. 문제가 생기면 이전 버전으로 돌아갈 수 있다
Git은 코드 버전 관리 프로그램으로,
Git은 매번 작성했던 코드의 모습을 하나로 볼 수 있게 해준다.
그리고 여러 개발자들이 협업할 수 있는 기능까지 모두 포함한다.
보통 협업할 때는 프로그램을 기능별로 나누고,
기능을 나누어 맡아 개발하는데
Git을 이용하면 여러 개발자가 작성한 코드를 동시에 합칠 수 있다
Git은 누가 만들었을까?
바로 리누스 토발즈라고 하는 사람이다
리누스 토발즈는 리눅스(Linux)라고 하는 운영 체제를 만들었는데
리누스 토발즈는 리눅스를 만든 이후에 BitKeeper라고 하는 툴로 리눅스의 각 버전들(ver1, ver2, ver3 ...)을 관리하고 있었다.
그런데 리눅스 커뮤니티의 개발자 한 명이 BitKeeper의 내부 동작 원리를 분석하려고 했던 일을 계기로 리눅스 커뮤니티와 BitKeeper 측의 사이가 틀어지게 되었다. 이 때문에 리눅스 커뮤니티 측에 대해서 BitKeeper는 유료화되었고, 리누스 토발즈는 BitKeeper를 대신할 다른 버전 관리 시스템을 찾아보기 시작했다. 하지만 자신의 마음에 드는 버전 관리 툴을 찾지 못했고, 그래서 리누스 토발즈는 본인이 직접 버전 관리 프로그램을 만들어버렸습니다. (정말 대단한 사람..) 이렇게 만들어진 버전 관리 프로그램이 바로 깃이다.
깃은 당시에 아래와 같은 목표를 갖고 설계 및 제작되었는데
- 빠른 속도
- 단순한 디자인
- 비선형적 개발 지원(수천 개의 브랜치를 병행할 수 있음)
- 완전 분산형 시스템
- 리눅스와 같은 거대한 프로젝트도 속도 저하의 문제없이 관리할 수 있는 시스템
깃은 버전 관리(Version Control), 협업(Cooperation)에 필요한 여러 요소들이 고려되었기 때문에, 사용성이 굉장히 좋은 프로그램이 될 수 있었다.
그럼 왜 깃(git)이라는 이름이 붙었을까?
리누스 토발즈가 깃을 맨 처음 만들었을 때 남겼던 기록을 보면 힌트를 얻을 수 있는데
그 기록은 아래 그림과 같다.

직역하면 다음과 같다.
"깃은 당신의 마음에 따라 그 어떤 것으로도 해석될 수 있습니다.
1. 유닉스 커맨드에서 사용되는 명령어 이름을 제외한 랜덤한 알파벳 3글자의 조합
2. 멍청하고 단순한(이런 특성을 지닌 아무 단어로 해석되어도 좋다는 의미)
3. global information tracker의 약자
4. goddamn idiotic truckload of sh*t 이라는 욕설의 약자"
정리하자면,
Git의 장점은
1. 버전관리
2.동시 협업가능
Git을 능숙하게 사용하는 것이 개발자의 필수 자질 중 하나이다!
'Programming > Git' 카테고리의 다른 글
Git 명령어 정리 (0) | 2023.01.11 |
---|---|
Git의 3가지 작업 영역 (0) | 2023.01.11 |
Commit 생성, commit message 작성 가이드라인 (0) | 2023.01.11 |
Git 기본 개념과 사용법 (0) | 2023.01.09 |
GitHub란 (0) | 2023.01.09 |