Git은 버전 관리 시스템으로 다른 개발자들과의 협업을 위해서 필수적으로 알아야 할 도구이다. 그렇다면 버전 관리는 무엇이며 왜 필요한가?
글을 쓸 때도 작성한 특정 부분이 마음에 들지 않는다면 삭제하고 이전으로 돌아가고 싶은 경우가 생긴다. 이러한 경우 돌아갈 특정 시점의 버전을 미리 저장해 놓는 것을 버전 관리의 예로 볼 수 있다. 버전 관리를 하는 것은 이처럼 변경 이력을 저장했다가 이전으로 돌아갈 수 있게 해주며 어떠한 변경사항들이 발생했는지를 관리하도록 도와준다. 추가로 많은 부분으로 나누어 진행하는 협업을 위해서도 버전 관리는 필수적이다.
git은 이러한 버전 관리를 위해 repository 혹은 repo로 불리는 저장소를 이용한다. 또한 버전 시점별로 commit이라는 변경 이력을 기록하여 쉽게 버전 관리를 할 수 있도록 도와준다.
git은 기본적으로 repository라는 저장소에 파일을 변경 이력별로 구분하여 저장한다. 여기서 repository의 어원을 잠시 살펴보면, 뒤에(re=back) 두다(pose=put)라는 의미의 repose에서 나온 단어로 '용기', '저장소', 혹은 '납골당'이라는 무시무시한 뜻으로도 쓰인다... 아무튼, 이러한 저장소의 장점은 바로 '변경 시점별로 추적하여 기록한다는 점'으로 이를 통해 버전 관리를 쉽게 할 수 있다. repository는 다시 다음의 두 종류로 나누어진다.
commit은 로컬 저장소에서 작업한 내용을 실제 저장소에 기록하는 과정으로 이전 커밋 상태부터 현재까지의 변경 이력이 기록된 커밋이 만들어진다. 커밋 시에는 필수적으로 메시지를 남겨야 하며 이를 남기지 않으면 커밋이 되지 않는다.
맥 기준으로 다운로드는 다음과 같이 homebrew를 이용해 설치할 수 있다.
$ brew install git
git --version
설치가 완료되면 위와 같이 명령어를 입력해 확인한다.
이후 사용자 이름과 이메일 주소를 설정하기 위해 다음과 같이 입력한다. 입력된 정보는 앞으로 커밋 내역에 기록된다.
$ git config --global user.name "나의 사용자 이름"
$ git config --global user.email "내 이메일 주소"
다음과 같이 --global 옵션으로 설정하면 사용자 홈에 저장되므로 git을 설정할 때 최초 한 번만 입력하면 된다.
다음은 작성 예시이다.
$ git config --global user.name "myGithubUsername"
$ git config --global user.email "myEmail@google.com"