브랜치 관리 | DevSecOps 구축 컨설팅, 교육, 기술지원 서비스 제공

브랜치 관리

브랜치는 프로젝트의 작업 트리(working tree) 버전입니다. 관련된 각 변경사항 집합에 대해 브랜치를 만듭니다. 이렇게 하면 각 변경사항 집합이 서로 분리되어, 서로 영향을 주지 않고 병렬로 변경될 수 있습니다.

변경사항을 새 브랜치로 푸시한 후, 다음을 수행할 수 있습니다.

  • 병합 요청 만들기
  • 인라인 코드 리뷰 수행
  • 구현에 대해 팀과 논의
  • Review Apps를 사용하여 새 브랜치에 제출된 변경사항을 미리 보기

GitLab Starter를 사용하면 관리자에게 승인을 요청할 수도 있습니다.

새 브랜치 만들기#

GitLab의 웹 인터페이스에서 브랜치를 만드는 방법에는 여러 가지가 있습니다.

이슈에서 새 브랜치 생성#

개발 워크플로우에서 모든 병합 요청에 대한 이슈를 가지도록 지시하는 경우, 이슈에서 직접 브랜치를 빠르게 생성하여 프로세스 속도를 높일 수 있습니다. 새 브랜치와 나중에 병합 요청은 이 이슈와 관련된 것으로 표시됩니다. 병합되면 MR이 자동으로 이슈를 종료합니다. 이슈 설명 아래에 Create merge request 드롭 다운을 볼 수 있습니다.

참고 : 동일한 이름의 브랜치 또는 참조된 병합 요청이 이미 있거나 프로젝트에 활성 포크 관계가 있는 경우 Create merge request 버튼이 표시되지 않습니다. 이 버튼을 표시하려면 가능한 해결 방법은 프로젝트의 포크 관계를 제거하는 것입니다. 일단 제거되면 포크 관계를 복원할 수 없습니다. 이 프로젝트는 더 이상 소스 프로젝트 또는 다른 포크로 병합 요청을 받거나 보낼 수 없습니다.

GitLab Create merge request 버튼 | 인포그랩 GitLab

이 드롭 다운에는 Create merge request and branchCreate branch 옵션이 포함되어 있습니다.

GitLab Create merge request 드롭다운 | 인포그랩 GitLab

이러한 옵션 중 하나를 선택하면 프로젝트의 기본 브랜치(기본적으로 master)를 기반으로 새 브랜치 또는 브랜치 및 병합 요청이 생성됩니다. 브랜치 이름은 이슈 제목을 기반으로 하며 prefix로 내부 ID를 갖게 됩니다. 따라서 위의 예제 스크린샷은 2-make-static-site-auto-deploy-and-serve라는 이름의 브랜치를 만들 것입니다.

빈 리포지토리 프로젝트에서 Create branch 버튼을 클릭하면 GitLab은 자동으로 master 브랜치를 생성하고 여기에 빈 README.md 파일을 커밋하고 이슈 제목을 기반으로 새로운 브랜치를 생성하고 리디렉션 합니다. 프로젝트가 Kubernetes와 같은 배포 서비스로 이미 구성된 경우 GitLab은 한 단계 더 나아가 .gitlab-ci.yml 파일을 만들 수 있도록 도와 자동 배포를 설정하라는 메시지를 표시합니다.

브랜치를 생성한 후 리포지토리의 파일을 편집하여 이슈를 해결할 수 있습니다. 새로 생성된 브랜치를 기준으로 병합 요청이 생성되면, 설명 필드에 이슈 닫기 패턴 Closes #ID가 자동으로 표시됩니다. ID는 이슈의 ID입니다. 이렇게 하면 병합 요청이 병합되면 이슈가 종료됩니다.

프로젝트의 대시보드에서 새 브랜치 만들기#

새 병합 요청을 만들기 전에 여러 파일을 변경하려는 경우, 새 브랜치를 미리 만들 수 있습니다. 프로젝트 Files 페이지의 드롭 다운에서 New branch를 선택합니다.

GitLab Repository 새 브랜치 만들기 | 인포그랩 GitLab

Branch name을 입력합니다. 필요에 따라 Create from 필드를 변경하여 이 새 브랜치가 시작될 브랜치, 태그 또는 커밋 SHA를 선택합니다. 이 필드는 기존 브랜치 또는 태그를 입력하기 시작하면 자동 완성됩니다. Create branch 버튼을 클릭하면 이 새 브랜치의 파일 브라우저로 돌아갑니다.

GitLab Repository 브랜치 생성 폼 | 인포그랩 GitLab

이제 필요에 따라 모든 파일을 변경할 수 있습니다. 변경사항을 master로 다시 병합할 준비가 되면 화면 상단의 위젯을 사용할 수 있습니다. 이 위젯은 브랜치를 생성하거나 파일을 수정한 후 일정 기간 동안만 나타납니다.

GitLab Repository merge 위젯 | 인포그랩 GitLab

Delete merged branches#

GitLab Repository 병합된 브랜치 삭제 | 인포그랩 GitLab

이 기능을 사용하면 병합된 브랜치를 대량으로 삭제할 수 있습니다. 병합되고 보호되지 않은 브랜치만 이 작업의 일부로 삭제됩니다.

특히 병합 요청이 병합될 때 자동으로 삭제되지 않은 오래된 브랜치를 정리하는 데 유용합니다.

Branch filter search box#

GitLab Branch filter search box | 인포그랩 GitLab

이 기능을 사용하면 브랜치를 빠르게 검색하고 선택할 수 있습니다. 검색 결과는 다음 순서로 나타납니다.

  • 검색어와 정확히 일치하는 이름을 가진 브랜치
  • 검색어가 포함된 이름이 알파벳순으로 정렬된 다른 브랜치

때로는 수백 개의 브랜치가 있는 경우 좀 더 유연한 매칭 패턴을 원할 수 있습니다. 이러한 경우 다음을 사용할 수 있습니다.

  • ^feature는 'feature'로 시작하는 브랜치 이름만 매칭 됩니다.
  • feature$는 'feature'로 끝나는 브랜치 이름만 매칭 됩니다.

깃랩 문서 바로가기