포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.
안녕하세요?
현재 국내에 GIT에 대한 제대로 된 문서가 없기에, GIT 사용자 가이드에 대하여 번역을 시작하게 되었습니다.
번역의 오류로 틀린 내용이 있을 수도 있으니, 오류 발견시 댓글을 남겨주시면 감사하겠습니다.
GIT 사용법 (ProGIT) - 2.1. GIT 저장소(Repository)의 취득
원본 : ProGIT Book(http://progit.org)
번역 : 김재훈(이솝 임베디드 포럼, http://www.aesop.or.kr)
Chapter 2. GIT의 기본
GIT를 사용하기에 앞서 꼭 읽어야 하는 부분이 본 장 입니다.
이 장에서는 여러분이 실제로 GIT를 사용할 때 필요한 모든 명령어를 기술하고 있습니다.
이 장을 끝까지 읽으면, 저장소(Repository)의 설정과 초기화, 파일의 추적 및 변경 내용의 Staging과 Commit을 하는 방법을 알 수 있게 됩니다. 또한, GIT에서 특정한 파일의 패턴에 대해 무시하는 방법이나, GIT 조작시 발생한 실수에 대해 간단하게 취소하는 방법, 프로젝트의 진행 내역과 변경 내용을 보는 방법, 원격 저장소(Repository)로의 Push나 Pull을 수행하는 방법에 대해서도 알아봅니다.
2.1. GIT 저장소(Repository)의 취득
Git 프로젝트를 취득하려면, 그게 두 가지의 방법이 있습니다. 하나는 기존의 프로젝트나 디렉터리를 Git에 Import 하는 방법, 그리고 또 하나는 기존의 Git 저장소(Repository)를 다른 서버로부터 클론(Clone)하는 방법 입니다.
2.1.1. 기존의 디렉터리에서 저장소(Repository)의 초기화
기존의 프로젝트를 Git로 관리하기 위해서는 해당 프로젝트의 디렉터리로 이동해 다음과 같이 입력 합니다.
$ git init
이 명령을 실행하면 .git 라는 이름의 새로운 서브 디렉터리가 만들어 집니다. 그리고, 저장소(Repository)에 필요한 모든 파일(Git 저장소에 대한 기본 정보)들이 저장 됩니다. 또한 GIT를 운용하기 위한 기본 구조도 생성 됩니다.
이 시점에서는 아직 프로젝트에 포함된 파일들을 GIT가 관리하지 않습니다.
(.git 디렉터리에 저장되는 정보들에 대한 상세한 내역은 제 9장을 참고하시기 바랍니다.)
이미 존재하는 파일이나 디렉터리에 대해 GIT를 사용한 버전관리를 시작하고 싶다면, 우선 해당 파일이나 디렉터리를 감시 대상으로 추가해야 합니다. 그리고 GIT에 최초로 Commit(위탁)을 수행하게 됩니다.
이 경우 다음과 같이 추가하고 싶은 파일이나 디렉터리에 대해 git add 명령을 실행하여 Commit(위탁)을 실시 합니다.
$ git add *.c$ git add README
$ git commit m 'inital project version'
위의 명령이 어떤 의미가 있는지에 대해서는 다음에 설명하도록 하겠습니다.
일단, 위의 명령을 실행하면 이 시점에서 GIT 저장소(Repository)에 감시 대상이 추가되며 최초의 Commit(위탁)까지 끝나게 된 것입니다. 그리고, 해당 파일들은 이제 GIT를 이용한 버전관리를 시작하게 됩니다.
2.1.2. 기존 저장소(Repository)를 클론(Clone)
기존의 GIT 저장소(Repostory)의 복사본을 취득하고 싶은 경우(기존 프로젝트에 참여하고 싶은 경우도 포함)에 사용하는 명령이 git clone 입니다.
Subversion 등의 다른 VCS를 사용하고 있는 사람이라면 "왜? checkout 명령이 아니고 clone 이라는 명령을 사용하지?"라는 의문이 들지도 모르겠습니다. 하지만, 이것은 GIT와 기존의 다른 VCS를 구부짓는 가장 중요한 차이중에 하나 입니다.
GIT는 기존의 VCS와 달리 버전관리 서버가 보관하고 있는 데이터를 거의 모두 복사 합니다. 해당 프로젝트에 포함된 모든 파일과 변경 이력들이 git clone 명령을 통해 거의 모두 로컬PC로 복사 됩니다. 따라서 만약에 버전관리 서버의 디스크가 파손되어 버렸다 하더라도, 어딘가의 클라이언트에서 기존에 수행했던 GIT Clone 명령을 통해 저장된 데이터를 서버로 되살리면, 마지막으로 클론을 한 시점까지 그대로 복원할 수 있습니다. (서버 측의 Hook 등의 몇몇의 정보는 잃어 버리지만 지금까지의 버전 관리 이력은 모두 복원이 가능 합니다. 이 부분은 4장에서 자세히 설명 합니다.)
$ git clone git://github.com/schacon/grit.git
이 명령은 "grit" 이라는 디렉터리를 로컬PC에 생성하고, 그 디렉터리 안의 .git 디렉터리를 초기화 합니다.
그리고 원격 저장소(Repository)에서 현재 최신 버전까지 변경된 모든 데이터를 받아와 Checkout(체크아웃) 합니다.
명령 수행 후 grit 디렉터리에 들어가면, 프로젝트의 파일들을 볼 수 있습니다.
만약 grit 디렉터리가 아닌 다른 이름의 디렉터리에 클론을 하고 싶다면, 다음과 같이 명령어 옵션으로 디렉터리 이름을 지정 합니다.
$ git clone git://github.com/schacon/grit.git mygrit
이 명령은 방금 전 설명한 것과 동일한 동작을 하지만, 디렉터리 이름은 mygrit가 됩니다.
GIT는 다양한 전송 프로토콜을 사용할 수 있습니다. 지금까지의 예제에서는 git:// 프로토콜을 사용했습니다.
하지만, 이외에 http(s)://나 user@server;/path.git 와 같은 형식을 사용할 수도 있습니다.
이것들은 SSH 또는 HTTP 프로토콜 들을 사용합니다.
이 부분에 대해서는 제 4장에서 서버에서 설정할 수 있는 GIT 접근 방식에 대한 장점과 단점에 대한 부분에서 설명할 예정 입니다.