우리회사에서는 지금까지 계속 svn 을 써 왔었다. 사용하다 보니, 깔끔하지 못한 문제들이 있었다. 예를 들면,
- 리포지토리가 완전한 상태로 유지 되지 않았다. 즉, 전체가 공통으로 관리하는 리포지토리 였지만, 임시로 커밋을 해 둔다던지, 한쪽 작업을 다른쪽과 싱크시키기 위해서 리포지토리를 사용한다던지 그런 이유에서 메인 트렁크가 항상 불안정한 상태로 있을때가 많았다. 메인 리포지토리를 체크아웃해서 빌드를 하면 빌드가 되지 않는 경우 허다했다.
- 또한, 반대로, 위와 같은 경우 때문에, 오히려 메인 리포지토리에 커밋을 하지 않는 경우도 많았다. 왠만해서는 커밋을 하지 않고, 나중에 한꺼번에 해야 겠다는 생각에, 모두가 로컬에서만 작업을 하고, 나중에 한번에 커밋을 했다. 그래서, 커밋에서 충돌이 너무 복잡해 져서 골치꺼리가 되는 경우도 많았다.
- 브랜치는 거의 이용하지 않았다. 브랜치란 완전히 새로운 프로젝트를 시작하는 수준과 같은 엄청나게 큰 일이었다.
물론, svn 도 잘 사용했으면 되겠지만, 이참에 소스코드 관리에 대한 새로운 방법론 도입이 필요하다 생각했었다. 그래서, 아무래도 최신 유행에 따르다 보니, git 를 사용해야 겠다고 생각이 되었다. github 가 대세이거니와 대부분 책이나 블로그에서도 git 를 기준으로 이야기를 하였다. 그래서, 우리도 git 로 가는 것이 바른 방향으로 인식되었다.
최근에야 git 를 본격 사용하다 보니, 낯설었다. 그나마 손에 익었던 svn 으로 돌아가고 싶은 생각도 들었다. git 의 개념도 잘 익혀지지 않았고, 명령어도 익숙하지 않았다. 그래서 그간 공부한 내용을 정리해 보았다.
그리고, 하나더, 최근 유행에 따라, git flow 와 gitosis 부분도 적용해 보았다. git flow 는 git 의 장점인 브랜치를 적극 활용하여, 원활한 프로젝트 중 소스코드 관리를 가능하게 하고, git flow 툴을 이용하여 이러한 방법론을 손쉽게 적용하도록 도와준다. gitosis 는 unix 의 사용자 권한이 아닌, 인증서를 통해서 권한 관리를 하여, git 하나의 사용자 계정으로 내부적으로 접근 관리를 하기 때문에, 훨씬 수월하게 접근 권한을 관리할 수 있게 해 준다.
이 페이지에서 간단히 정리한 문서를 찾을 수 있다. 이번에도 역시 PDF 파일은 아이패드에서 읽이 좋은 사이즈로 만들어 보았다.