협업하기

ProjectRoom의 Git 플로우

ProjectRoom은 위와 같은 Git flow를 기반으로 서비스를 제공합니다.

필요한 선수 지식

Git의 개념에 대해 익숙하다고 가정하지만 잘 알지 못한다고 할지라도 설명을 따라갈 수 있습니다. Git을 깊게 알지 못하더라도 Git을 사용할 수 있게끔 UI/UX를 구성해두었습니다.

첫 브랜치는 무엇일까요?

프로젝트 -> 워크스페이스에 접근하여 나오는 소스 데이터의 초기 브랜치(branch)는 feature 브랜치입니다.

feature 브랜치는 develop 브랜치를 기반으로 만들어진 브랜치로 초기에는 'feature/닉네임-년-월-일' 형태로 제공됩니다.

브랜치를 생성하고 수정은 어떻게 하나요?

브랜치는 워크스페이스-브랜치 위치 에 표시되있는 브랜치를 클릭하면 아래와 같은 화면이 나옵니다.

1. 해당 영역에 브랜치명을 클릭합니다.

2. '기본 브랜치 생성'을 클릭하여 새로운 브랜치를 생성할 수 있습니다.

3. 선택한 브랜치의 브랜치명을 변경 할 수 있습니다.

4. 브랜치를 변경할 수 있습니다. commit 되지 않은 작업 내역 또한 브랜치 별로 관리됩니다.(stash)

git에서 브랜치를 변경할 경우 commit 되지 않은 변경사항은 충돌 나지 않으면 변경사항도 따라가게

됩니다. ProjectRoom에선 그러한 혼란을 막고자 브랜치의 변경 시 stash를 하고 돌아올 경우 pop을 하는 방식으로 각 브랜치간의 작업 내역 분리를 해두었습니다.

원격 Repository에 반영은 어떻게 하나요?

commit & push & pull

소스코드를 작업하여 개발한 작업 변경본을 Commit & Push 버튼을 통해 반영합니다.

  1. Commit 할 파일은 선택하고 커밋 문구도 작성 후에 Commit 버튼을 클릭하여 커밋합니다.

  2. Commit 후 바로 Push 할 경우 'Comit and Push' 버튼을 누릅니다.

소스코드 병합은 어떻게 할까요?

Project Room에서는 PR(Pull Request) 방식으로 소스 병합을 지원하고 있습니다.

Pull Request란?

로컬 feature 브랜치를 commit & push를 통해 원격에 소스코드를 반영한 후 PR을 생성합니다

풀 요청을 참고하시면 이해에 도움이 됩니다.

프로젝트 -> 풀 요청

해당 위치로 이동 후 '풀 요청 생성' 버튼을 눌러 아래의 화면에 접근합니다.

소스에는 사용자가 push한 feature 브랜치가 목록으로 보여집니다. 그 중 PR을 생성할 소스를 선택하고

대상에 develop 브랜치를 선택하여 비교 버튼을 눌러줍니다.

변경사항 등을 확인한 후 세부정보를 기입해주고 '풀 요청 생성' 버튼을 눌러주어 PR 생성을 마무리 합니다.

프로젝트 -> 풀 요청

아래와 같이 풀 요청에 만들어진 것을 확인할 수 있습니다. 제목을 클릭해 들어갑니다.

병합 권한이 있는 사용가 커밋 내역 등을 확인 후 이상이 없을 시 병합을 완료합니다.

풀요청(PR)이 완료된 develop 브랜치는 테스트를 어떻게 하나요?

여러개의 feature 브랜치가 PR로 병합되고 된 마지막 형상을 ProjectRoom에서는 staging 브랜치를 두어

전체 테스트를 진행합니다.

staging 배포는 최신의 develop 브랜치를 기반으로 만들어진 staging 브랜치를 빌드하여 서버를 구동합니다.

ProjectRoom의 개발환경을 참고하시면 이해에 도움이 됩니다.

전체 작업 기본흐름을 정리해봅시다

1. 워크스페이스에서 소스코드를 작성합니다.

워크스페이스에 작성된 소스 코드는 자동으로 저장됩니다.(2초간격)

2. 변경된 부분을 commit을 통해 로컬 저장소에 반영합니다.

3. push를 통해 원격 저장소에 commit 내역을 반영합니다.

로컬(feature/브랜치명) -> 원격(feature/브랜치명)

3. 원격 저장소에 해당 브랜치가 push가 되면 PR(pull request)를 할 수 있게 됩니다.

4. PR을 요청하고 해당 기능 개발된 부분을 merge 권한이 있는 사용자가 병합을 시킵니다.

5. 병합(merge)이 이뤄진 결과 staging에 배포할 수 있습니다.

6. 스테이징에 배포하여 통합테스트를 진행합니다.

staging의 배포는 배포, 배포권한 설정을 참고하시면 됩니다.

Last updated