본문 바로가기

Programming/Git

6. Git Repository (저장소) 를 얻어오기

Git project 를 얻는 방법은 두가지 방법이 있다.


첫 번째는, 존재하는 프로젝트 혹은 디렉토리에 Git 으로 가져오는 방법

두 번째는, 존재하는 Git repository 를 다른 서버로부터 clone 하는 방법


1. 존재하는 디렉토리로부터 Git repository 를 초기화 하는 방법

- 해당 프로젝트의 root 디렉토리로 이동한 뒤, 아래와 같은 명령어로 초기화 한다.


 $ git init


이 명령은 해당 프로젝트에 .git 이라는 이름의 디렉토리를 생성한다. 이 .git 디렉토리 안에는 해당 프로젝트의 필요한 정보를 가지고 있는 파일들이 있다. 이 파일을 Git repository skeleton 이라고 한다. 이 시점에서는 프로젝트는 아직 변경이력이 추적되지 않는다. 여기서 이 프로젝트를 버전 관리를 하고 싶다면, 버전관리를 하고자 하는 파일을 initial commit 에 추가해야 한다. initial commit 은 해당 Git repository 의 제일 처음 commit 을 의미하며, 해당 Repository 의 root 를 의미하기도 한다.

이러한 작업을 하기 위해서 아래와 같은 일련의 명령어를 사용하게 된다.


 $ git add *.c

 $ git add README

 $ git commit -m 'project initial version'


이렇게 하면, 현재 디렉토리의 모든 C 언어로 작성된 파일과 README 라는 파일이 버전관리에 들어가게 된다. 그리고 commit message 는 "project initial version" 이라고 기록된다.


2. 존재하는 다른 Repository 를 clone 하는 방법

- 존재하는 다른 Repository 를 복제하고 싶다면 - 예를 들어서, project 의 일원이 되어서 소스를 수정하거나 패치를 하고 싶은 경우. 에는 git clone 이라는 명령어를 사용하여 수행할 수 있다.

만약 다른 버전관리 시스템들, 예를 들어 Subversion 에 익숙하다면 Git 의 clone 은 clone 일 뿐이지, checkout 은 아니라는 것을 유념해야 한다. Git 은 서버가 가지고 있는 거의 모든 데이터를 복사하여 받는다. 그렇기 때문에 clone 의 대상 프로젝트에 있는 모든 파일의 변경 이력이 고스란히 git clone 에 의해서 전송이 된다.


clone 을 하고 싶으면 git clone [url] 이라는 명령어를 사용한다. 예를 들어서, Grit 라고 불리우는 Ruby Git 라이브러리를  받고 싶다면 아래와 같이 명령어를 입력한다.


 $ git clone git://github.com/schacon/grit.git


이렇게 하면, grit 라는 이름의 디렉토리를 생성하고, 그 디렉토리 안에 .git 디렉토리를 초기화 한다. 그리고 그 repository의 모든 데이터를 받아온뒤, 받아 온것이 최신버전의 복사본인지 확인하게 된다. 그래서 이렇게 생성된 디렉토리를 살펴보면 여러개의 파일들이 있다는 것을 확인 할 수 있다. 만약 다른 grit 대신 다른 이름(예를 들어 mygrit 라고 하고 싶다면) 아래와 같은 명령어로 Git repository 를 초기화 할 수 있다.


 $ git clone git://github.com/schacon/grit.git mygrit


Git 은 사용할 수 있는 프로토콜이 많다. 예제에 사용된 프로토콜은 git:// 프로토콜이다. 하지만, http(s):// 혹은 user@server:/path.git 이라는 SSH 전송 프로토콜을 사용하는 것도 볼 수 있다. 이러한 다른 프로토콜을 사용하는 것은 다른 포스팅을 통해서 알아보겠다.

'Programming > Git' 카테고리의 다른 글

8. github 소개  (0) 2011.07.03
7. Git 기본 지식  (0) 2011.07.03
5. Git 도움말 얻기  (0) 2011.07.03
4. Git 설정하기  (0) 2011.07.03
3. Git 설치하기  (0) 2011.07.03