CVS, SVN 을 거쳐 현재 리비젼 컨트롤 시스템의 대세는 Git 인듯 보인다. 얼마전 페르시아의 왕자 Apple II 어셈블리 소스코드가 올라오기도 했던, 코드 호스팅 서비스인 GitHub 에서 Mac용에 이어 Windows용 어플리케이션을 공개했다. 깔끔하고 미려한 GitHub for Mac 의 UI 에 비해 기존의 Windows용 Git UI Tool 들의 UI 는 윈도우 탐색기와 별반 다르지 않은 모습이었다. 이에, 메트로 스타일 UI 를 접목한 GitHub for Windows 의 등장은 Mac 인터페이스가 더이상 부럽지 않을 정도로 만들었다. 다만, 로딩시 비교적 긴 딜레이와 가끔씩 이유없이 뻗어버리는 안정성 문제는 조속히 업데이트가 이뤄져야할 부분이다.

GitHub for Mac

DOWNLOAD AND INSTALL


GitHub for WindowsDownload Link 를 통해 다운받은 Setup 파일을 실행하면 다음과 같은 보안경고 팝업이 뜨고, 'Install' 을 진행하면 35.3MB 의 파일을 다운로드하여 설치가 진행된다.


LOG IN


설치완료 후, 최초구동 시 로그인 화면에서 GitHub 의 로그인 정보를 입력하고 미가입된 경우, 'SIGN UP'을 통해 가입.

로그인을 완료하고, 해당 계정에 아직 생성된 repo 가 없으면 다음과 같은 화면이 보여진다. 상단의 '+ add' 버튼이나 중앙의 'create one' 링크를 통해 repo 생성이 가능하다. 


CREATE NEW REPOSITORY


예전에 포스팅한 Speex Bada Build 소스를 호스팅하기 위한 repo 를 생성해 보았다. 

2012/04/13 - [bada] - [bada] Speex 빌드 (Build Speex on bada)

해당 repo 이름, 설명, 로컬 디렉토리 입력 후, 'CREATE'

  • Push to GitHub.com : 체크하면, 로컬 생성하는 해당 repo 를 Push 하여 GitHub 서버에도 생성. 미체크하여도, 추후 메뉴를 통해 GitHub 로 Push 가능하다.
  • Keep this code private : 일반 무료계정의 경우, 해당 계정에서 생성되는 repo 는 무조건 공개 설정된다. 즉, 검색이나 탐색을 통해 해당 repo 의 내용이 공개된다. 일정금액을 지불하는 유료계정의 경우, repo 가 공개되지 않게끔 private 설정이 가능하다. 무료계정에서는 당연히 적용되지 않는 옵션이다.


ADD FILES


생성된 repo 에는 .gitattributes 와 .gitignore 두개 파일이 생성되어 Add 되어 있다.

  • .gitattributes : Line-feed Normalization 이 적용될 텍스트 파일 및 기타 파일들의 속성이 지정되어 있는 파일
  • .gitignore : Revision Control 에 적용하지 않을 파일 확장자 및 특정 파일 목록이 지정되어 있는 파일

UI 에서 파일추가는 지원하지 않기 때문에, 'tools and options' 메뉴의 'open a shell here' 를 선택하여 해당 쉘에서 git add 커맨드를 통해 소스코드를 추가시켜 주거나, 탐색기를 통해 소스코드를 해당 repo 로컬 디렉토리로 복사하고 'Back' 버튼으로 대쉬보드로 이동 후 다시 해당 repo 를 선택하면, 복사한 소스코드들이 Add 되어 리스트업 된다.

※ 바다 프로젝트 Import 시 필요한, .project, .cproject 파일의 경우 디폴트 생성된 .gitignore 에 지정되어 있는 파일 확장자라 Add 가 되지 않았다. Settings 메뉴를 통해, .gitignore 목록에 지정되어 있는 .project, .cproject 를 삭제하고 Commit/Sync 후 다시 Add 를 시도하였으나 여전히 해당 파일들을 Add 하지 않았다.

할수없이, Shell 을 구동하여 해당 파일들을 Add 하고, UI에서 Commit/Sync.


COMMIT AND SYNC (Push To GitHub)


'COMMIT MESSAGE' 항목은 필수입력이고, 'EXTENDED DESCRIPTION' 항목은 선택사항으로 입력하지 않아도 무방하다. 로컬 'COMMIT' 을 수행하고, 버튼을 클릭하면, GitHub.com 의 해당 repo 와 동기화 된다.


DASHBOARD


GitHub 와 동기화가 이뤄진 Repo 화면 및 해당계정의 Repo 리스트를 보여주는 대쉬보드 화면.

※ Repository 에 README 텍스트 파일(확장자 없음)이 존재하면. 위와 같이 오른쪽 화면에 README 내용을 표시해 준다. GitHub.com 에서는 브라우저에서 Repo 메인화면의 아래쪽에 해당 내용을 표시해준다.


OPTIONS AND SETTINGS


대쉬보드에서는  메뉴는 options, Repo 화면에서는 settings 화면을 보여준다.

  • options : GitHub 로그인 정보, 로컬 디렉토리, 디폴트 쉘 설정.
  • settings : ignored files, attributes 항목의 추가/수정.

※ 최초 구동시, 'default shell' 은 'PowerShell' 로 설정되어 있다. 삼성 Galaxy S3 (GT-I9300) 소스코드를 호스팅하는데 파일이 많아서인지, UI 에서는 Add 과정에서 뻗어버렸고, PowerShell 은 Sync 과정에서 트랜잭션 에러가 발생하여 'Git Bash' shell 을 통해 Sync 성공하였다.

2012/06/04 - [Android] - 갤럭시 S3 소스 코드 공개 및 GitHub 등록 (Galaxy S3 GT-I9300 Source code release and GitHub repo)


마치며


일단, 메트로 스타일 UI 가 주는 임팩트와 심플함은 상당히 만족스럽다. 조금 과장하자면, Git 를 처음 접하는 사용자도 따로 매뉴얼 없이 사용가능할 수준의 UI다. 하지만, 아직까지 기능상 Shell 사용을 완전히 배제하고 사용하기에는 무리이고 로딩 딜레이와 비교적 자주 뻗어버리는 안정성 문제는 해결해야 할 부분이다.

참고로, Pro Git 란 책이 온라인에서 공개되어 있다. Git 에 대해 상세히 잘 정리되어 있으며, Chapter 2. Git Basics 만 보아도 충분히 Git 사용에 대한 이해가 가능하다.

UPDATE : Pro Git 한글번역본 링크


저작자 표시 비영리 변경 금지
신고
댓글
댓글쓰기 폼