2015년 4월 11일 토요일

git 그리고 github을 xcode에서 빠르게 사용하기

svn을 주로 사용하다 보니 git이 출연을 해도 계속 svn을 사용 하였다.
git에 대해 공부도 해야 하고 명령도 익히고 현재 svn을 사용하 듯 커맨드 라인에서 익숙 하게 하지는 못하지만 맥에서 xcode와 연동 해서 사용 하는 정도로 익히고 싶다.
그리고 주로 개인프로젝트가 os x에서 xcode를 가지고 ios 프로그래밍을 하다 보니
svn 을 이용하는 것 보다 git으로 갈아 타는게 유리 하겠다. 싶어서 지금까지 익힌 방법을 간단하게 기술해 본다.

git의 장점이라고 한다면 지금까지 내가 알게된 것은 클라이언트에서 모든 작업이 가능 하다는 것과 서버에 디스크 문제가 발생하여도 클라이언트에 완벽한 히스토리를 가지고 있는 복제 본이 있기 때문에 안전하다 정도이다.
사실 svn은 서버와 연결이 안되는 상황 즉 나의 맥미니가 꺼져 있거나 집에서 나와 맥북프로를 이용해서 작업을 한다면 어떤 수정 사항도 커밋할 수 없다. 이건 사실 엄청 불편한 진실이 었다.
아무리 svn에서 check out 받은 소스가 드랍 박스에 있고 드랍박스가 설치된 어떠한 컴퓨터에서도 소스를 수정 할수는 있었지만 그 수정 이력을 커밋 할수 없는 상황은 상당히 불편 했다.

또한 svn서버를 구성하고 지금까지 ios앱을 개발할때 이용 했는데 사실 저번 서드파티 ssd에 대한 트림 설정 오류로 인해 맥미니가 크래쉬 되었을때 타임머신 복구를 했을때 특정 리비젼 이전에 히스토리가 깨지는 사태가 있었다.
아무리 타임머신 복원을 하여도 svn리파지토리가 완벽하게 복구되지 않는다는 것을 몸으로 경험 했다.

그래서 이참에 xcode와 완벽하게 연동되고 github라는 무료 원격 저장소를 제공하는 git로 갈아 탄다.

1단계 로컬에서 xcode로 프로젝트를 생성 할때 git을 채크 하면 그것 자체가 이미 git을 이용한 로컬 저장소를 이용 하는 것이다.

먼저 새로운 프로젝트를 개발 한다고 하면 반드시 xcode에서 생성할때 version controll을  git로 로컬에서 하기로 한다.


그리고 svn을 xcode에서  svn 리파지토리를 이용하듯 수정 하면 project navigator에 M으로 표시되고 새로운 파일을 추가하면 A로 표시되고 리비젼 비교 및 diff 확인등을 로컬 git  저장소를 통해 모두 똑같이 할수 있다.

이제 원격 저장소로 전송 하거나 원격 저장소에서 가져오는 것은 svn과의 좀 다른 개념으로 push와 pull이 되겠다.

아직은 많이 이용 해보지 못했고 간단하게 원격 저장 소를 만들고 push 하는 정도만 기술 한다.

github에 새로운 리파지토리를 생성한다. 이때 프로젝트 이름과 동일해야 xcode에서 인지하기 쉬운듯 하다.

생성된 원격저장소에 http 주소를 복사하여 xcode에 preparence -> account에 새 저장소 추가로 생성 한다.

Xcode 메뉴에 Source controll에 git으로 생성한 프로젝트는  Commit  / Push / Pull 이 나타남을 확인 할 수 있다.

Push를 해주면 비로소 원격 저장소에 로컬 저장소에 있는 모든 히스토리가 전송 된다.

이제 git으로 관리되는 로컬 저장소에서 자유롭게 커밋 하고 만드러진 코드를 github에 push 하면 되겠다.



댓글 없음: