git - 분산 환경에서의 워크플로

2022. 12. 11. 23:08기타 팁

728x90

<분산 환경 종류>

1. 중앙집중식 워크플로

주의 할 점: 지신의 일을 커밋하고 Push 하기 전에 서버에 있는 걸 Merge 하자.

그래야 그 전 개발자가 작업한 내용을 덮어 쓰지 않는다.

git은 덮어쓰도록 허용하지 않는다. 

Push 하기 전에 Fetch로 받아서 Merge 한 후 Push 할 수 있다.

2. Integration-Manager 워크플로

다른 개발자는 읽기만 가능하고 자신은 쓰기도 가능한 공개 저장소를 만드는 워크플로

 

프로젝트 Integration-Manager는 프로젝트 메인 저장소에 Push를 한다

-> 기여자는 메인 저장소를 clone 하고 수정하고 나서 자신의 저장소에 Push 한다.

-> 프로젝트 Integration-Manager에게 새 저장소에서 Pull 하라고 요청한다.(변경사항을 적용해달라고)

-> Integration-Manager는 기여자의 저장소를 리모트 저장소로 등록하고, 

로컬에서 기여물 테스트하고, 프로젝트 메인 브랜치에 Merge한 후 프로젝트 메인 저장소에 Push한다.

3. Dictator and Lieutenants 워크플로

수백 명의 개발자가 참여하는 아주 큰 프로젝트를 운영할 때 사용한다.

 

여러 명의 Integration-Manager가 저장소에서 자신이 맡은 부분만 담당하는데 이들을 Lieutenants라고 부른다.

모든 Lieutenants는 최종 관리자 아래에 있으며, 이 관리자를 Benevolent Dictator라고 부른다.

Benevolent Dictator는 Lieutenants의 저장소를 가져와 공식 저장소에 Push 하고 

모든 프로젝트 참여자는 이 공식 저장소에서 반드시 Pull 해야 한다.

 

개발자는 코드를 수정하고 공식 저장소의 브랜치를 기준으로 자신의 토픽 브랜치를 Rebase 한다.

-> Lieutenants들은 개발자들의 수정사항을 자신이 관리하는 master 브랜치에 Merge 한다.

-> Dictator는 Lieutenants의 master 브랜치를 자신의 master 브랜치로 Merge 한다.

-> Dictator는 자신의 master 브랜치를 Push 하며 

다른 모든 개발자는 Dictator의 master 브랜치를 기준으로 Rebase 한다.

728x90

'기타 팁' 카테고리의 다른 글

인텔리제이 단축키  (0) 2023.04.27
git - 커밋 가이드라인  (0) 2022.12.11
git 브랜치 워크플로  (0) 2022.12.11
GIT 브랜치  (0) 2022.12.11
캡처도구 없이 단축키만으로 화면 캡처하기  (0) 2022.11.26