프로 Git 2판: 그림으로 이해하는 Git의 작동 원리와 사용법』

스캇 샤콘, 벤 스트라웁 지음 | 박창우, 이성환, 최용재 옮김

Git을 다룬 책 중 결정판이라 할 『프로 Git 2판』

Pro Git 1판이 나온 이래 Git엔 많은 것들이 추가되고 수정됐습니다. Pro Git 2판은 이러한 추가된 것, 수정된 것을 다루고 있습니다.

Git을 사용하는 오픈 소스 커뮤니티의 폭발적인 증가 양상에 맞춰 Git 호스팅 웹사이트인 GitHub 커뮤니티를 한 개장으로 구성해 소개하고 있습니다. GitHub을 같이 배우면 커뮤니티에 참여할 수 있어서 자신만의 Git 호스팅을 사용하는 것보다 더 큰 효과를 얻을 수 있을 겁니다.

1판이 나오고 난 이후 크게 바뀐 또 하나는 Git 데이터를 전송하는 데 사용하는 HTTP 프로토콜이 개선되었다는 점입니다. 이 책 예제의 대부분은 HTTP를 사용하는 것으로 바뀌었습니다. HTTP가 더 간단합니다.

1판을 읽었고 도무지 시간이 없다는 분들은 6장과 7장을 먼저 읽어 보는 것도 좋습니다. 이 부분은 거의 새로운 내용입니다. 마지막 장에서는 Git의 은밀하고 기술적인 구조를 깊이 있게 다루고 있습니다. 단 한 권으로 Git의 고수가 되고 싶다면 이 책을 권합니다.

생산적이고 효율적으로 Git을 즐기는 안내서

『프로 Git 2판』은 총 10개 장과 3개의 부록으로 아래와 같이 구성되어 있습니다.

1장에서는 버전 관리 시스템(VCS)과 Git이란 게 대체 무엇인지, Git의 탄생 배경과 Git이 다른 VCS와 무엇이 다른지, 많은 사람이 왜 Git을 사용하는지에 대해서 알아봅니다.

2장에서는 기본적인 Git 사용법을 설명합니다. 80%쯤은 이 장에서 설명하는 정도로만 Git을 사용하므로 2장을 읽고 나면 저장소를 Clone하기, 프로젝트 히스토리를 알아보기, 파일을 수정하고 프로젝트에 기여하기 등을 할 수 있습니다.

3장에서는 Git의 핵심 기능이라 불리는 브랜치 모델에 대해서 알아봅니다. Git 브랜치를 어떻게 활용하는지 배우면 다른 VCS와 어떻게 다른지 알게 됩니다.

4장에서는 서버 환경에서의 Git에 대해 살펴봅니다. Git으로 협업할 때 회사 같은 특정 네트워크 안에서 사용할 Git 서버를 구축하거나 자신만의 Git 서버를 운영하고자 하는 사람에게 필요한 내용입니다. 직접 Git 서버를 관리하지 않고 사용하는 여러 호스팅 서비스도 소개합니다.

5장에서는 다양한 분산 환경에서의 워크플로에 대해 알아보고 Git으로 어떻게 워크플로를 달성하는지 알아봅니다. 5장을 읽고 나면 여러 리모트 저장소를 두고 전문가처럼 작업할 수 있습니다. 이메일로도 Git 작업을 할 수 있고, 많은 수의 리모트 브랜치나 기여받은 패치를 다룰 수 있습니다.

6장에서는 GitHub 호스팅 서비스와 GitHub에서 제공하는 도구를 자세히 알아봅니다. 가입하고 계정을 관리하는 방법부터 Git 저장소를 생성하고 다른 프로젝트에 기여하고 반대로 기여받는 워크플로를 살펴봅니다. GitHub이 제공하는 프로그래밍 가능한 인터페이스와 알아두면 피가 되고 살이 되는 팁도 소개합니다.

7장에서는 Git의 고급 명령을 알아봅니다. 때로는 위험할 수도 있는 ‘Reset’ 같은 명령에 도사가 되고, 버그를 찾기 위해 이진 탐색 기능을 사용하기도 한다. 히스토리를 수정하기도 하고 히스토리에서 세세하게 리비전을 선택해서 작업하는 등 다양한 고급 기능을 살펴봅니다. 7장은 Git을 고급스러워 보이게 구사하는 마스터로 만들어 줄 것입니다.

8장에서는 Git 환경설정을 입맛에 맞게 조정하는 방법을 알아봅니다. 사용자가 원하는 정책을 만들어서 Git 환경에 적용할 수 있는 훅 스크립트를 설명합니다. 원하는 대로 커밋 규칙을 세우고 이를 강제하도록 스크립트를 작성하는 예제도 소개합니다.

9장에서는 Git과 다른 VCS를 함께 사용하는 환경에 대해 알아봅니다. Subversion 환경에서 Git을 클라이언트로 사용하는 방법이나 다른 VCS 프로젝트를 Git 프로젝트로 변경하는 방법을 살펴봅니다. 예를 들어 Subversion 서버를 써야 하는 환경에서도 Git이 제공하는 다양한 장점을 사용하는 법을 알려줍니다. 다른 VCS 환경이나 프로젝트를 Git으로 변환하는 방법을 터득함으로써 동료에게 Git이 왜 좋은지 이해시키는 데 도움이 될 수 있습니다.

10장에서는 Git 안으로 깊숙이 파고듭니다. Git이 실제로 어떻게 동작하는지 이해하고 나면 아주 우아하고 강력하게 Git을 사용할 수 있게 됩니다. 이처럼 내부를 이해하고 나면 이제 데이터를 어떻게 다루는 것이 좋은지, 객체를 다루는 모델로 무엇을 사용하는지, Packfile은 정확히 어떻게 이루어져 있는지, 서버 프로토콜은 어떻게 이루어져 있는지 논하는 경지에 이르게 됩니다. 남들과는 다르게 Git의 은밀한 기술적인 구조를 이해하고 싶다면 다른 부분보다 여기 10장에 먼저 손이 갈 것입니다.

부록 A에서는 다양한 환경에서 Git을 사용하는 예제를 살펴봅니다. 여러 GUI, 여러 IDE 환경에서 Git을 사용하려면 어떻게 해야 하는지, Shell이나 Visual Studio, Eclipse 같은 환경에서 Git을 어떻게 쓰는지 훑어보려면 부록 A를 보면 됩니다.

부록 B에서는 Git을 스크립트로 사용하거나 libgit2나 JGit 같은 라이브러리로 기능을 확장해서 사용하는 방법을 알아봅니다. 맞춤 도구를 제작해서 사용해야 한다거나 Git의 저수준 접근이 필요한 경우 부록 B를 살펴보면 어떻게 해야 할지 감을 잡을 수 있습니다.

마지막으로 부록 C에서는 주요 Git 명령을 한꺼번에 살펴보고 각 명령을 어디서 설명하고 있는지 안내하고 어떻게 사용했는지를 알려줍니다. 어떤 명령이 책의 어디에서 소개되었고 어떤 예제가 있는지 찾아볼 때 부록 C가 유용합니다.

한글 Pro Git 오픈 소스 프로젝트에 이바지한 분들

역자들을 도와 2판 리뷰에 힘써주신 많은 리뷰어께도 감사드립니다. 🙂

김경범 님, 김경진 님, 이거성 님, 정규철 님, 정봉훈 님, 조현기 님, 조현태 님, 최병훈 님 (역자 서문에 기재)

* 샤콘느님이 GitHub에 공개해둔 Pro Git 2판 원문 보기 (클릭!)

* Git 명령어를 한눈에! Git 치트시트.pdf (종이책 맨 뒤에 첨부)

오픈 소스 개발자가 Git에 대해 알아야 할 모든 것

버전 관리 시스템과 오픈 소스 프로젝트를 활용하는 법을 배우려는 초보 개발자나 웹 디자이너는 물론 협업을 통해 코드 수정과 버전 관리를 깔끔하게 해내고 싶은 엔지니어 분들께 이 책을 권합니다. 『프로 Git 2판』은 다음 서점에서 구입하실 수 있습니다.

Yes24 | 교보문고 | 알라딘 | 인터파크 | 강컴