더북(TheBook)

깃이란 무엇인가요?

Git은 프로젝트 버전 관리 도구입니다. 프로그램 소스 코드, 퍼펫 설정 파일, 졸업 논문, 심지어 일기까지 거의 모든 컴퓨터 파일을 관리할 수 있습니다. 기본적으로 각 파일을 버전을 부여해서 저장하고 상태 변화를 추적하며 필요한 경우 원하는 버전으로 복원하는 기능을 제공합니다. 깃 이전에도 프로젝트 버전 관리 도구가 있었지만 깃이 여러 사용자의 사랑을 독차지하게 된 이유는 다음과 같습니다.

가지치기(branch)와 병합(merge)을 제공합니다.

로컬에서 대부분의 명령을 처리합니다.

작고 빠릅니다.

프로젝트 배포가 매우 편리합니다.

다른 프로젝트 버전 관리 도구보다 강력한 협업 기능을 제공합니다.

프로젝트의 무결성을 보장합니다.

오픈 소스로 개발되어 누구나 사용 가능합니다.

Tip

가지치기와 병합은 ‘깃 가지치기’에서 살펴보고 깃으로 협업하는 과정은 ‘깃허브에 사용자 등록하고 원격 저장소 생성하기’에서 소개합니다.

깃은 파일을 세 가지 상태, 제출된 상태Committed, 수정된 상태Modified, 준비 영역에 추가된 상태Staged로 관리합니다. 깃으로 관리하는 파일을 수정하면 수정된 상태로, 수정한 파일을 제출하기 위해 준비 영역에 추가하면 준비 영역에 추가된 상태로, 작업을 로컬 데이터베이스에 저장하면 제출된 상태로 각각 바뀌게 됩니다.

‘11.2 깃 시작하기’에서 깃 명령어를 살펴보겠지만 기본적으로 파일을 관리하는 흐름은 파일의 세 가지 상태 변환과 밀접한 관련이 있습니다. 작업 디렉터리 Workingdirectory에서 파일을 수정하고, git add 명령으로 수정한 파일을 준비 영역으로 보낸 다음, git commit 명령으로 준비 영역의 파일을 커밋 Commit해서 저장소 Repository에 저장하는 과정으로 파일 관리가 진행합니다(그림 11-1).

그림 11-1 깃으로 파일을 관리하는 절차
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.