git으로 공동 작업 저장소 어떻게 하는 것이 좋은가요?

hz의 이미지

여러 사람이 공동으로 작업하는 프로젝트에서 git을 사용하면서
중앙 저장소를 만들려고 할 때 어떻게 하면 좋은가요?

검색하고 매뉴얼들을 읽어봐도 방법들이 여러가지가 있어서 어떻게
하는 것이 좋을지 감이 잘 서지 않습니다. 관련해서 생각해야 될 점을
포함해서 조언을 해 주시면 고맙겠습니다.

imyejin의 이미지

전 git는 직접 써 본 적은 없고 darcs와 mercurial은 써봤는데요, sandbox가 따로 없고 로컬 복사본도 repository가 된다는 점이 다를 뿐, cvs svn 등 전통적인 중앙집중식 버전관리툴에 익숙한 분들이라면 쉽게 적응합니다.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

hz의 이미지

네... 궁금한 점을 더 정확하게 말씀드리면... shared repository를 어떤 방식으로
설정하는가 하는 것입니다. 매뉴얼도 읽고 검색해 보니 방법들이 많은데요.

1) SSH로. 모든 개발자에 계정을 발급하고 repository에 쓰기 권한을 준다.

2) repository를 git protocol 등으로 public하게 열어놓아 누구나 받아 볼 수
있도록만 하고 직접 push는 하지 못하게 한다. push는 SSH를 통해 관리자 혼자만
한다. 다른 사람들이 관리자에게 메일로 패치를 보내면 일괄적으로 처리한다.

3) git repository를 호스팅하게 해 주는 gitosis 같은 툴을 쓴다.

등등

어떤 방법을 추천하시는지 알고 싶습니다.

bushi의 이미지

중앙저장소에 대한 변경권한을 프로젝트 참가자 전원에게 줄 것인지 maintainer 개인 혹은 그룹에게만 줄것인지 고민되시는 거죠 ?
제가 있는 팀도 거의 지난 1여년간 토론했고 논쟁했습니다만, '이것이 정답' 식의 결론은 나지 않더군요.

git 를 사용하면서 같은 고민을 하는 사람이 한두명이 아닐겁니다.
http://code.google.com/p/gerrit/
을 알아보세요.
git 을 위한 code review & merge 시스템인데...
moderator 가 제한되어 있다면 이런 식의 시스템을 운영하는 것이 좋겠죠.
적용된 예는 https://review.source.android.com/Gerrit#all,open,n,z 에서 보실 수 있고요
open, merged, abandoned 로 나눠져 있습니다.

OTL

imyejin의 이미지

예를 들어 어느 정도 규모가 되는 프로젝트를 3팀이 각각 어떤 모듈을 중심으로 맡아 개발한다면,

A팀, B팀, C팀이 각 팀장 권한 하에 1)번이나 2)번 등의 방법으로 각각의 팀 공유 저장소를 만들어 팀별로 사용하면, 중앙 관리자는 팀장들로부터 보고를 받고 changeLog 등을 보면서 어떤 단계의 패치를 pull해 올지 결정하서 메인 저장소로 가져오면 됩니다. 물론 이런 모델에서는 팀장이 수시로 메인 저장소에서 팀 공용 저장소로 변경사항을 수시로 업데이트하면서 팀원들에게 알리는 것이 중요하겠죠.

이런 다양한 방식의 프로젝트 저장소 구성이 가능한 것이 분산형 버전 관리 시스템의 장점입니다.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.