Git을 본격적으로 사용한지 이제 일년이 되간다. 사실 본격적이라고 말하기가 조금 모자라긴하다. 고객을 상대하는 정규 프로젝트에는 아직 적용을 해본적이 없기 때문이다. 주로 개인프로젝트와 책에 사용하는 예제 등을 관리하는 용도로 주로 사용하고 있다. 그래도 작업량이 많고 빈번하게 변경이 되는 프로젝트 들이라 Git의 재미를 느끼기에는 충분하다.

기존에 SVN으로 관리해오던 프로젝트들을 로컬에서는 Git으로 사용하고 중앙 리포지토리에는 SVN을 이용해서 사용하는 짬뽕식의 방법을 쓰는 것도 유용해 보인다. 일부 JBoss나 Apache의 프로젝트를 받아보면, 리포지토리는 SVN으로 되어있지만 개발자들의 로컬머신에서는 Git을 쓰고 있는 흔적들이 보인다. .gitignore 파일이 보이면 뻔하지.

Git을 비슷한 DSCM인 Mercurial보다 더 낫다고 생각하는 개발자들이 자주 제시하는 근거는 바로 기존 또는 강제된 SVN환경에 별 문제없이 바로 적용시킬 수 있는 git-svn기능이다. 어짜피 Git은 중앙 리포지토리의 존재 조차도 필요없으니, 백업이나 CI용으로 사용할 때 Git server를 사용하건, SVN을 사용하건 별 차이는 없을지도 모르겠다.

그럼에도 Git의 본격적인 사용을 불편하게 하는 것은 자바 개발자로서 아직 편리한 사용할만한 IDE환경에 결합된 툴이 없기 때문이다. 초기에 Git을 지원하는 이클립스 플러그인을 써봤을 때는 크게 실망이었다. 설치하자마자 쏟아져 나오는 각종 오류들에 놀랐고, 제대로 개발이 진행되고 있는지 아닌지도 모를 프로젝트의 상태도 마찬가지였다. Subclipse가 거의 유일한 SVN 플러그인이던 시절 SVN을 접고 다시 CVS로 갈까하는 충동이 자주 있었던 것 못지 않게, Git을 당장 쓰기는 좀 무리라고 생각하게 만든 것이 바로 편리한 툴의 부재이다.

물론 Git의 Linux의 커널개발에 적합한 툴로 만들어졌고, 주로 커맨드라인에서 사용하고, C로 된 라이브러리만 공식지원하기 때문에 자바IDE에 빠르게 완성도 높은 플러그인이 만들어질 것을 기대하기는 무리이다. 게다가 사용방법이 유사한 CVS,SVN과는 달리 로컬 리포지토리와 브랜치, Pull, Push의 개념이 기본적인 이클립스 Team기능의 기본적인 틀과도 다르다는 점도 쉽게 툴을 기대하지 못하게 하는 한가지 이유이다.

그동안은 어쩔 수 없이 이클립스에서 작업은 하고, 커맨드 라인에서 git 명령을 직접 입력해서 작업을 해야 했다. 마치 초창기에 Maven을 쓰때 같은데, 문제는 Maven 초기 eclipse플러그인과 같이 어설프게 나마 eclipse로 설정을 만들어주는 기능도 없으니, IDE에서 파일의 변경상태를 파악하고 빠르게 commit 등을 할 수 없다는 것은 파일의 규모가 커지고, 작업량이 늘어나면 답답한 일이 아닐 수 없었다.

그러던 중에 최근에 Aptana를 사용하면서 Git이 기본 SCM에 포함된 것을 보고, 이클립스에 다시 Git플러그인을 설치해봤다. JGit이라는 자바로 만든 Git의 구현체와 플러그인이 결합한 것이다. 며칠 사용한 결과 매우 안정적이고(적어도 알 수 없는 예외가 마구 떨어지지는 않았으니…), 그럭저럭 편리하게 쓸만하다는 결론을 내렸다. Git의 모든 기능(command만 수백가지니)을 다 사용할 수는 없지만, pull/push등을 자유롭게 할 수 있고, branch의 생성이나 전환도 자유롭다. 아직 merge를 직접 하는 방법은 찾지를 못했지만, 그 정도는 커맨드 라인에서 작업하는 것도 문제는 아닐 것이다.

 

어쨌든 JGit에 대한 만족도가 높아서 이제 본격적인 실무 프로젝트에 적용을 해보려고 결심을 했다. 나처럼 이런 저런 기술적인 시도를 좋아하는 사람에게는 편리한 로컬 branch 기능과 강력한 merge기능이 필수다.

 

참, 얘기가 샜는데, 그래서 Git에 대한 자료를 좀 더 모으다가 Subversion에 익숙한 개발자를 위해서 Subversion과 비교해서 Git의 기능를 설명한 좋은 글을 하나 발견했다. 1:1로 다 대응될 수는 없겠지만 그래도 기본적인 개념을 빠르게 이해하는데는 도움이 되리라 생각된다.

Related posts:

  1. 구글코드의 Mercurial 지원
  2. 이클립스 Git 플러그인 JGIT/EGIT 사용주의
  3. 유쾌한 이슈처리 재촉 메일

Facebook comments:

to “Subversion 사용자를 위한 Git 소개”

  1. 좋은 글 잘 읽었습니다.

    “주로 개인프로젝트와 책에 사용하는 예제 등을 관리하는 용도로 주로 사용하고 있다.” 라는 부분에서 제가 지금 필요한 것이라고 느꼈습니다.

    subversion을 생각을 하고 있어서 subversion에 대해서 찾다가 Git도 알게 되었고 Mercurial도 알게 되었습니다.
    저도 토비님의 위 글 처럼 사용을 하고 싶은데 어떤 것이 좀 더 효율적일지 조언 좀 부탁드립니다.

    일단 갖고 있는 환경은 노트북 한대에 2개의 외장하드가 있는데 어떻게 구성을 하면 좋을까요?..

  2. 아리수/ 개인용도라면 Git이나 Mercurial을 사용하시면 좋을 것입니다. 서버에 백업하는 것은 github.com 같은데 무료계정을 받아 쓰시면 되고요.
    로컬에서 쓸 때는 서버를 따로 설치할 필요는 없습니다. Git이나 Mercurial을 깔려있으면 되는 것이고요.
    처음 쓰신다면 Mercurial이 쉽고 편리합니다. Git은.. 140개의 명령이 있고, 각 명령당 또 수많은 옵션의 조합이 필요하죠. 익숙해지려면 3-6개월을 꾸준히 공부하면서 자꾸 연습하고, 써봐야 할 것입니다. Mercurial은 학습하기가 부담이 좀 적고, 윈도에서도 잘 돌아간다는 장점이 있지요.
    다만 두가지다 이클립스 플러그인은 불안정하므로 별로 권장하지 않습니다. 도스창에서 명령으로 사용하시는 것이 좋습니다.

  3. [...] 좀 뜬금없지만 ㅎㅎ 말그대로 Git 이 뭔가 싶어서 찾아보다 토비님의 댓글을 보곤 Mercurial을 검색해 아래 포스트를 찾았다 분산버전관리 머큐리얼로 [...]

  4. [...] 좀 뜬금없지만 ㅎㅎ 말그대로 Git 이 뭔가 싶어서 찾아보다 토비님의 댓글을 보곤 Mercurial을 검색해 아래 포스트를 찾았다 분산버전관리 머큐리얼로 [...]

  5. Ahaa, its fastidious discussion regarding this article at
    this place at this webpage, I have read all that, so at
    this time me also commenting at this place.

  6. mbt changa shoes Subversion 사용자를 위한 Git 소개 » Toby’s Epril

  7. mbt exercise shoes Subversion 사용자를 위한 Git 소개 » Toby’s Epril

  8. viagra generico
    Think about how big the furnishings you are likely to utilization in any interior decorating. You may not would like to choose a nine foot a number of post mattress for any room which is only 100 square feet. If you need to choose more compact, select more compact, for that greater areas, opt for larger sections.
    levitra générique
    Find a help class. Suffering from joint disease will make you think that an undetectable and unhappy victim, even if you are certainly not. Joining a assist selection of other people who have a similar problem can assist you feel happier about it, and also provide you with a method to reveal ideas for dealing.
    viagra original
    Be careful about making your child enjoy online online games, especially games with stay sound. There may be horrible terminology over these routes, in addition to a great deal of bullying habits. There can even be youngster potential predators over these chitchat bedrooms. Know what your child has been doing and check these conversation periods for their safety.
    dapoxetine 60mg kaufen

Leave a Reply to Toby Cancel reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha