본문 바로가기

서버운영 (TA, ADMIN)/미들웨어

[버전관리] Git, 분산 버전 관리시스템

현재 진행하고 있는 프로젝트에서 git 이용해 버전관리를 해볼 예정입니다. 학부시절에 써본적이 있긴한데 실무에서 사용하는것은 이번이 처음입니다. SI 프로젝트에서는 통상적으로 SVN을 쓰는 경우가 많다보니 그렇게 되었습니다. 자발적으로 git을 써보자고 했는데.. 제대로 알고 적용을 해야지 SVN 사용대비 어떤점이 좋은지 안좋은지도 비교해볼 수 있을 것 같습니다. 아직까지는 중앙저장소 기반의 SVN 버전관리가 쉽게 느껴지네요. 익숙한것이 쉬운것이다 보니까요. git이 좋다좋다 하니 사용방법 상세히 살펴봐서 이번기회에 제대로 써볼수 있었으면 좋겠습니다.

git에 대해 알아보기 위해 아래 책 내용을 확인해보고 있습니다.

기본적인 명령어 외에도 책 내용을 살펴보면 git 최대한 활용할 수 있는 방법들이 나열되어 있겠지요. 책의 내용이 개념설명이 아니라 주로 사용법에 대한 나열이기때문에 3~4일 정도면 내용을 다 훑을 수 있을 거라고 생각합니다.

책에서 다루는 내용 :
1-1. Git 방식으로 버전 관리하기
1-2. Git 설정하기
1-3. 첫 프로젝트 만들기

2-1. Git 기초: 추가하고 커밋하기
2-3. 브랜치 이해하고 활용하기
2-4. Git 이력 이용하기.
2-5. 원격 저장소를 이용하여 작업하기
2-6. 저장소 조직하기
2-7. 기본을 넘어서

3-1. Git으로 옮겨가기
3-2. Gitosis를 이용하여 Git 서버 운용하기

머릿말 내용 일부 발췌 :
사용하는 버전관리 시스템의 종류보다는 버전 관리 시스템을 얼마나 잘 사용하는지가 제일 중요합니다. 기존의 중앙 집중식 저장소의 경우 네트워크 지원이 필수적이지만 Git은 분산 환경을 지원하며, 덕분에 속도가 빠르기도 합니다. 세세하게 제어할 수 있는 명령어를 많이 제공하면서도 디스크 사용량은 적습니다. 이미 우수성을 인정받아 리눅스 커널 외에도 안드로이드와 루비 온 레이스를 포함한 많은 오픈 소스 프로젝트가 버전관리시스템으로 Git을 선택했습니다.

기존 버전관리 시스템을 사용하면서 단순히 커밋과 업데이트만 사용하던 방식에서 원하는 리비전을 쉽게 찾고 이를 통해 브랜치를 생성하거나 태그를 붙이는 등의 다채로운 작업이 가능하다고 나와있습니다.

버전 관리 시스템은 은행 금고와 유사합니다. 돈을 찾거나 안전하게 보관하려고 은행에 맡길 수 있습니다. 개발자로 치면 작성한 소스코드가 은행 금고의 돈에 해당합니다. 변경한 내용은 기록이 되며, 은행 계좌를 검토할 수 있듯이 이력을 통해 되돌아갈 수도 있습니다.
Git은 현금 자동 인출기가 붙어있는 자신만의 금고를 가지고 걸어다니는 것과 유사합니다. 에트워크와 분리되어 작업할 수도 있고, 원하는 내용을 공유할 수도 있으며, 물론 프로젝트의 이력도 추적할 수 있습니다. 리누스 토발즈는 원래 리눅스 커널의 변경 사항을 추적하려고 Git을 개발했습니다. Git은 리누스가 몇 주 동안 작성한 간단한 스크립트 모음에서 강력한 도구로 성숙해왔으며, 프로그래머로서 다음과 같은 Git의 강점은 많은 도움이 됩니다.

- 분산 아키텍처 : 완전히 연결이 끊어진 상태에서, 항상 인터넷에 연결돼야하는 고통없이 동작합니다.
- 쉬운 브랜치 만들기와 합치기 : 다른 버전 관리 시스템과는 달리 브랜치를 생성하기가 쉽고, 비용이 적으며, 속도도 빠릅니다. 또한 브랜치를 여러 번 나눈 경우라도 간단히 합칠 수 있습니다.
- 서브 버전과 통신 : 자신만이 회사에서 Git으로 바꿀 준비가 된 유일한 사람이라면? 모두가 서브버전을 계속 사용하고 있어도 걱정할 필요가 없습니다. Git은 서브버전 저장소의 이력을 가져올 수 있으며, 변경 사항을 다시 보낼 수도 있습니다.