병합 요청 워크플로우

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

GitLab과 병합 요청 플로우를 사용하는 두 가지 주요 방법이 있습니다.

  1. 단일 저장소 내의 보호된 브랜치와 작업하는 방법입니다.
  2. 권위 있는 프로젝트의 포크로 작업하는 방법입니다.

보호된 브랜치 플로우

보호된 브랜치 플로우를 사용하면 모든 사람이 동일한 GitLab 프로젝트 내에서 작업합니다.

프로젝트 유지보수자는 유지보수자 역할을 갖고, 일반 개발자들은 개발자 역할을 갖습니다.

유지보수자는 권위 있는 브랜치를 ‘보호됨’으로 지정합니다.

개발자들은 기능 브랜치를 프로젝트에 푸시하고, 해당 기능 브랜치가 검토되고 보호된 브랜치 중 하나로 병합되도록 병합 요청을 만듭니다.

기본적으로 보호된 브랜치로의 변경 사항을 병합할 수 있는 권한은 유지보수자 역할을 가진 사용자에게만 부여됩니다.

장점

  • 프로젝트가 적을수록 혼란이 줄어듭니다.
  • 개발자들은 하나의 원격 저장소만 신경쓰면 됩니다.

단점

  • 각 새로운 프로젝트에 대해 보호된 브랜치를 수동으로 설정해야 합니다.

보호된 브랜치 플로우를 설정하려면:

  1. 기본 브랜치가 기본 브랜치 보호로 보호되었는지 확인하세요.
  2. 팀에 여러 브랜치가 있는 경우 변경 사항을 병합할 사용자와 명시적으로 푸시하거나 강제 푸시할 수 있는 사용자를 관리하고 싶다면 해당 브랜치를 보호하세요:

  3. 코드의 모든 변경 사항이 커밋으로 유입됩니다. 변경 사항이 코드베이스로 유입되는 방식 및 SSH 키 서명이 변경에 필요한지와 같은 보안 조치와 형식을 지정할 수 있습니다:

  4. 코드가 올바른 사람들에 의해 검토되고 확인되도록 하려면:

Ultimate Tier에서도 사용 가능:

포킹 워크플로우

포킹 워크플로우를 사용할 경우 유지보수자는 권위 있는 저장소에서 유지보수자 역할을 가지고 일반 개발자들은 보고자 역할을 가집니다. 이는 권한 부여를 방지합니다.

개발자들은 권위 있는 프로젝트의 포크를 만들고 자신의 포크로 기능 브랜치를 푸시합니다.

변경 사항을 기본 브랜치로 가져오려면 포크 간에 병합 요청을 만들어야 합니다.

장점

  • 적절하게 구성된 GitLab 그룹에서 새 프로젝트는 일반 개발자에게 필요한 액세스 제한을 자동으로 받으므로, 새 프로젝트의 인가를 설정하는 데 필요한 수동 단계가 줄어듭니다.

단점

  • 프로젝트는 자신의 포크를 최신 상태로 유지해야 하며, 이는 더 고급 Git 기술 (여러 원격 저장소 관리)이 필요합니다.