- 이용현 (팀장 / 소프트웨어학부 / 2019034684)
- 김문주 (소프트웨어학부 / 2019038277)
- 김종언 (소프트웨어학부 / 2019074257)
- 이승섭 (소프트웨어학부 / 2019033936)
- 최진영 (소프트웨어학부 / 2019095905)
- 황순태 (소프트웨어학부 / 2015038713)
- 모든 프로젝트 참여자가
개인적인 로컬 저장소
와공개된 자신의 원격 저장소(하나의 중앙 원격 저장소를 각자가 Fork한 것)
, 즉두 개씩의 Git 저장소
를 가지는 방식이다. - 모든 코드 기여자가 하나의
중앙 저장소에 푸시하는 것이 아니라, 각자 자신의 원격 저장소에 푸시
하고,프로젝트 관리자만 다른 개발자들의 기여분을 중앙 원격 저장소에 병합할 수 있다
는 점이 가장 큰 특장점이다.
- 소규모의 팀에서는 팀원 모두가 프로젝트 관리자가 되어 중앙 원격 저장소를 관리할 수 있다.
아주 큰 규모의 분산된 팀에서도 안전하게 협업하기에 좋은 협업 방법
이다.오픈소스 프로젝트에서 많이 사용하는 방식
이다.
1. 프로젝트 팀 전체가 사용하는 중앙 원격 repository, 개인이 사용하는 개인 원격 repository, 개인이 사용하는 개인 로컬 repository를 아래의 이미지와 같이 구성함.
•중앙 원격 저장소를 복제한 저장소는 개인의 공개 저장소(remote repository) 역할을 함.
•다른 개발자는 자신의 원격 저장소에 푸시할 수 없음(내려 받는 것은 가능)
git clone [개인 원격 remote 저장소 주소]
[로컬 저장소 - 중앙 원격 저장소 연결]
$ git remote add center [중앙 원격 remote 저장소 주소]
[로컬 저장소 - 개인 원격 저장소 연결]
$ git remote add origin [개인 원격 remote 저장소 주소]
$ git checkout -b [branch name]
# 위의 명령어는 아래의 두 명령어를 합한 것
$ git branch [branch name]
$ git checkout [branch name]
$ git commit -a -m "Write commit message"
# 위의 명령어는 아래의 두 명령어를 합한 것
$ git add . # 변경된 모든 파일을 스테이징 영역에 추가
$ git add [some-file] # 스테이징 영역에 some-file 추가
$ git commit -m "Write commit message" # local 작업폴더에 history 하나를 쌓는 것
$ git pull center master
- 장점 개인 원격 저장소에서 발생한 업데이트는 중앙 원격 저장소에 영향을 주지 않으므로, 다양한 시도를 하기에 좋다. 어떤 기준에 따라 잘 분류되어 있는 프로젝트에 적용하기 좋다.
- 단점 git을 처음 써보는 사람의 경우 workflow를 이해하기가 다른 flow보다 상대적으로 어렵다. 작업 상황을 자주(짧은 주기로) 리뷰하기가 쉽지 않다. → 통일된 관리가 어렵다.