Git은 분산 버전관리 시스템이다. 서로 각자의 저장소를 가지고서 어떻게 충돌없이 잘 사용할 수 있을지 알아보자. (5장)
1) 중앙집중식 Workflow
- 예전의 Subversion에 익숙한 사용자들의 방식
- 예로 2명이 작업, 한명이 서버로 update코드 push하면 다른한명이 서버에서 update코드를 pull하여 merge 수행
- 모든 사용자에게 서버에 push 권한을 부여해야 함
- 그러나 중앙 서버 저장소로 a코드가 다른이에 의해 push 되었고, 다른사람이 a코드를 수정하여 push해도 Git은 이것을 방지해 준다. 즉, 다시 로컬로 fetch 또는 pull 하지 않으면 중앙 서버로 push 할 수 없게 막아준다
2) 통합관리(Integration-Manager) Workflow
- 여러 리모트 저장소를 두고 한개는 R/W 가능, 다른 한개는 R만 가능하게 설정가능 하다
- 이것은 GitHub의 운영방식이다. Pull Request 수행하면 통합관리자가 이것을 보고 기여자의 저장소에서 원본 저장소로 pull하여 merge 하게 된다
3) 독재자 보조관(Dictator and Lieutenants) Workflow
- 2)번 형태의 확장판
- Linux Kernel과 같은 큰 프로젝트에서 사용한다
* 다양한 변종의 Workflow가 존재함
<참조>
- 성공적인 Git Branch 전략 (한글번역본 - dogfeet)
+ feature : 기능 만들기
+ develop : 개발진행
+ release : 릴리즈
+ hotfixes : 긴급 패치
+ master : 원본
'Git, GitHub > Git Lec02' 카테고리의 다른 글
[Pro Git] 비공개 소규모 팀 운영 (0) | 2013.01.28 |
---|---|
[Pro Git] 커밋 가이드라인 (0) | 2013.01.25 |
[Pro Git] 브랜치를 merge하기 위한 Rebase 하기 (0) | 2013.01.16 |
[Pro Git] Branch 사용하기 (0) | 2013.01.16 |
[Pro Git] Git Alias 사용하기 (0) | 2013.01.08 |