2010. 5. 19. 00:27
javascript 관련 오픈 소스를 찾다보면 자주 들리게 되는 github.com 를 써보기로 하고, 사용해 본 결과를 정리한다.


일단 git 에 대해 간략하게 설명하면 다음과 같다.

1. 백과사전:
Git은 프로그램 등의 소스코드 관리를 위한 분산 버전 관리 시스템이다. 리누스 토르발스에 의해 개발되었다.

2. 공식 사이트:
무료 오픈소스인 분산 버전 관리 시스템인데, 작은 프로젝트나 큰 프로젝트나 할 것 없이 속도와 효율성이 있게 처리할 수 있게 설계되어있다고 한다.
모든 Git 클론은 모든 히스토리와 리비전 트래킹 기능을 지닌 완전한 레파지토리인데, 네트워크 억세스나 중앙 서버에 의존하지 않는다고 한다. 브랜칭과 머징이 빠르고 쉽게 된댄다.

3. 그림:

그림 한장에 대부분의 기능이 다 설명 되는듯.
SVN과 다르게 commit이 로컬에서만 이루어지고, 서버에 반영은 push라는 동작으로 이루어 진다는 점이 중요한듯. 서버에서 처음에 모두 받을 때는 pull로 왕 끌여당기고, 그 후로는 fetch와 checkout을 통해 받게 되고, commit 전에 add 라는 작업이 있는 정도.

4. 다른 좋은 글:


일단 목적은 내가 쓰는 환경인 windows 에서 편리하게 사용하는 것. 윈도우즈 관련 툴을 찾아보니 다음과 같은 것이 있었다. 
지금 현재 최신 버전은 1.7.0.2 인데 이 것을 첨부한다.


일단 설치는 쉽다. 계속 넥스트만 눌러주면 된다.



다 하고 나면 아래 처럼 탐색기 오른쪽 버튼 메뉴에 뭔가가 생긴다.


나의 프로젝트를 git를 이용해서 관리할려면 해당 폴더로 가서 Git Init Here 눌러주면 된다(bash로 하는 방법도 있는데, 그건 찾아보면 관련 자료가 많이 나온다. 검색해보시길). 윈도우7에서는 저게 안되니 GIT GUI 를 구동한 다음에 Create New Repository 를 클릭해서 해당 폴더를 선택해주면 된다. 세가지 방법 모두 동일한 작업이다.


init 시켜주면 위와 같이 숨겨진 폴더가 생기고 거기에 레파지토리가 생기는듯.
이제 다시 오른쪽 버튼을 클릭하면 다음과 같이 새로운 메뉴가 뜬다. Add all files now 해보자.


GIT GUI 툴에서는 아래 이미지 처럼 추가가 가능하다. Rescan 눌러서 스캔한 다음에 Commit 메뉴안의 Stage To Commit 누르면 동일한 작업이 가능하다. 윈도우7 환경에서는 두번째 방법으로만 가능하다.


윈도우XP에서는 GIT GUI를 아래 처럼 쉽게 띄울 수 있다(Git Commit Tool 클릭).


요기까지 했다면 아래와 같은 화면이..


커밋 메시지를 대충 적고 Commit 버튼을 누르면 로컬 레파지토리에 커밋된다.


다시 탐색기에서 오른쪽 버튼을 누르면 Git History 메뉴가 보이게 된다.


Git History 를 눌러서 커밋이 잘 되었는지 확인해 보자.


잘 된듯.
혼자 로컬 레파지토리에서 커밋하고 버전 컨트롤하는 부분은 이걸로 완성.
이제 github.com 을 이용하기 위한 세팅을 해보자.


일단 회원 가입은 알아서..


가입 한 후에는 New Repository 를 눌러 레파지토리를 만들자.



레파지토리는 완성이 된듯. 아래 이미지 중간에 보이는 "git@github.com:azki/simpletank.git" 라는 주소가 읽기/쓰기 접근을 할 수 있는 URL 이다.


다시 툴로 돌아와서 Remote 메뉴의 Add 를 눌러보자.


이름을 아무거나 마음에 드는걸로 대충 적고 아까 그 주소를 적어주자. 스샷에는 azki로 되어있는데 프로젝트 이름을 적는 것이 더 좋을듯하다.
참고로, 내가 해본 결과 저 이름을 한글로 쓰면 나중에 툴에서 문자가 깨져서 오동작하는 부분도 있었다. 왠만하면 저런건 영어로 하는 것이 좋을듯.


그 후 SSH Key 를 만들자. Help 안에 Show SSH Key 를 누르면 된다.


Generate Key 를 누르면 키가 생성되는데, 현재 버전에서는 따로 이메일 주소를 입력할 수 없다. 이메일 주소를 입력하고 키를 발급 받고 싶다면 아래와 같이 Git Bash 를 이용하자. 명령어는
ssh-keygen -C "메일주소" -t rsa
이다.


사용자 폴더안의 .ssh 폴더안에 키값이 저장된다. 내 경우 Win7 이기 때문에 "C:\Users\azki\.ssh" 에 저장되었지만, XP 일 경우 "C:\Documents and Settings\azki\.ssh" 에 저장될 것이다. 나중에 지우고 싶으면 찾아 들어가서 지워버리면 된다.

아무튼 툴에서 보여주는 SSH Key 를 복사하자. 위에서 설명한 경로안의 id_rsa.pub 파일을 텍스트에디터로 열어서 봐도 된다.


키를 github 에 등록하자. 프로젝트 첫 화면에서 상단의 Admin 버튼을 누르면 설정할 수 있는 관리자 화면으로 넘어간다. 그 곳에서 왼쪽 메뉴의 Deploy Keys 를 누르면 아래 처럼 등록할 수 있다. 타이틀은 메일 주소로ㅋ


등록 완료!


이제 다시 툴로 돌아와서 push를 해보자(커밋은 이미 아까 저 위에 위에 위에 위에 위에 위에서 했으니까 바로 푸시!).


아까 Remote의 Add로 추가했던 레파지토리가 보인다. 선택하고 push하자. 등록 안하고 Arbitrary Location으로 URL을 써줘도 되긴함.


push를 누르면 잘 푸시된다. 혹시나 SSH키를 만들 때 passphrase를 입력해놓았다면 암호를 물어보는데 입력해주면 된다.


http://github.com/azki/simpletank 에서 새로고침 해주면 아래 처럼 푸시한 녀석들이 잘 올라가 있는 것을 볼 수 있다.


프로젝트의 루트 폴더에 README 파일을 넣어주면 파일 내용이 화면에 나타나기도 한다. 다만 한글 등을 쓸려면 UTF-8 형식으로 된 파일로 올려야 될듯(아래 처럼 글씨 깨진다).


작성한 사용자를 정확히 표시할려면 툴에서 다음과 같은 설정을 해줘야하는 듯하다. Edit의 Options...


유저 이름과 이메일 어드레스를 넣어주자.


이렇게 유저 설정을 한 다음에 아까 그 README 파일도 UTF-8 형식으로 다시 커밋하고 푸시한 다음에 보면 아래 처럼 매우 잘 나온다. :]


일반적인 사용에 대한 사용기 끝~!


느낀점.
커밋이 로컬에서 이루어지기 때문에 무척 빠르다. 마찬가지로 히스토리 관리나 리버전 따위 작업 역시 엄청난 속도..
특히 이전에 쓰던 SVN의 경우는 내부 네트워크에 놓고 쓸 경우에도 꽤 처리 시간이 걸렸었다. 그리고 외부 서버에 놓고 쓸 경우 엄청난 인내심이 요구되었었다. 예전에 구글에서 제공하는 레파지토리 호스팅(code.google.com/hosting)도 쓸려고 프로젝트를 만들어보고, 네이버 개발센터(dev.naver.com)에서도 프로젝트를 만들어보고 했는데 그걸 못쓰고 버린건 다 그런 이유. 특히 구글은 소스 파일 몇개 커밋 하는데 10초 이상 걸리는 등 엄청나게 느려서 10분 써보고 바로 포기했었다. 일단 이런 면에서 git는 매우 합격이다. 참 좋은 녀석인듯. 앞으로 쫌 많이 활용해야 겠다.

ps.
github의 모토가 원래 "소셜 소스 코드 공유"라는데 그런 부분에 대한 것이나, SVN에 없는 멋진 기능 등을 발견하면 나중에 또 포스팅 하겠음. ㅋㅋ 읽어주신 분들 ㄳ~!


Posted by 아즈키