ETC/Git

Git 입문자 안내서 - 07: 끌어오기 요청하기

Jade Choe 2024. 7. 21. 22:43
SMALL

Git 협업 시 가지치기를 통해 메인 브랜치에 영향을 주지 않고 테스트 및 기능추가가 가능하다고 했다.

 

하지만 분기 후 작업을 하고, 사전에 합의되지 않은 병합을 무분별하게 진행하게 되면 결국 메인 브랜치가 꼬이는 불상사가 발생하는 상황이 올 수 있다.

 

이런 상황을 방지하기 위해 저장소의 관리자를 제외한 나머지 (Collaborator로 등록된) 인원은 메인 브랜치로의 병합 권한을 주지 않고, 분기된 브랜치를 끌어오기 요청 함으로써 저장소 관리자가 메인 브랜치에 병합하기 전에 충돌이 없는지 확인 후 메인 브랜치에 병합하는 작업을 수행한다.

형상관리 전략

  • 끌어오기 요청(Pull Request, 이하 PR)은 형상관리 전략에 따라 수행하는데, 크게 Git FlowTrunk Based로 나눠볼 수 있다.
  • 형상관리 전략을 설명하기엔 게시글이 길어지기 때문에 아래 영상으로 대체한다.

 

 

구성 및 흐름

  • Git에서의 협업 및 PR 흐름은 대략적으로 아래와 같다.
    1. Issues 탭에 오류, 개선사항, 기능추가 등의 태그를 달아 추후 작업할 내용을 공유한다.
    2. 브랜치를 생성해 해당 작업 내용에 따라 작업한다.
    3. 테스트, commit, push 후 더이상 작업할 내용이 없다고 판단되면 해당 브랜치PR에 등록한다.
      • 본인이 만든 브랜치라면 해당 브랜치 페이지 상단에 Pull Request를 생성할거냐는 버튼이 뜬다.
    4. 코드 리뷰 후 메인 브랜치에 병합한다.

 

  • PR 페이지를 보면 다음과 같이 구성되어 있다.
    1. Conversation: 해당 PR에 관련된 내용을 상의하는 대화 페이지이다. 스레드 형식으로 구성되어 있다.
    2. Commits: 해당 PR에 작업된 커밋 내역을 볼 수 있다.
    3. Checks: 해당 PR의 커밋내역이 리포지토리에 충족하는지를 자동으로 검사해 준다.
      코드 컨벤션 등 별도 규칙이 있는 회사에서는 많이 사용하지 않고, 오픈소스 프로젝트에서 많이 사용한다.
    4. Files Changed: 해당 PR에서 어떤 파일들이 최종적으로 어떻게 수정 되었는지 볼 수 있다.
    5. Reviewers: PR 요청을 확인하고 코드 리뷰를 진행할 사람을 리뷰어로 추가한다.
      대체로 저장소 관리자를 지정한다.
    6. Development: 이전에 공유된 Issues를 연결할 수 있다.

 

BIG