머지 방법
프로젝트의 머지 방법은 머지 시 커밋을 스쿼시할지, 머지 커밋을 생성할지 결정합니다.
프로젝트에 선택한 머지 방법에 따라 머지 리퀘스트의 변경 사항이 기존 브랜치에 머지되는 방식이 결정됩니다. 이 페이지의 예시는 커밋 A, C, E가 있는 main 브랜치와 커밋 B, D가 있는 feature 브랜치를 전제로 합니다. Mermaid 다이어그램 (11줄) 소스 코드 보기 %%{init: { "fontFamily": "GitLab Sans" }}%% gitGraph accTitle: Diagram of a merge accDescr: A Git graph of five commits on two branches, which will be expanded on in other graphs in this page. commit id: "A" branch feature commit id: "B" commit id: "D" checkout main commit id: "C" commit id: "E" 프로젝트의 머지 방법 구성 # 상단 바에서 Search or go to 를 선택하고 프로젝트를 찾습니다. 왼쪽 사이드바에서 Settings > Merge requests 를 선택합니다. 다음 옵션 중에서 원하는 Merge method 를 선택합니다. Merge commit Merge commit with semi-linear history Fast-forward merge Squash commits when merging 에서 커밋 처리 기본 동작을 선택합니다. Do not allow : 스쿼시를 수행하지 않으며, 사용자가 동작을 변경할 수 없습니다. Allow : 스쿼시가 기본적으로 꺼져 있으며, 사용자가 동작을 변경할 수 있습니다. Encourage : 스쿼시가 기본적으로 켜져 있으며, 사용자가 동작을 변경할 수 있습니다. Require : 스쿼시를 항상 수행하며, 사용자가 동작을 변경할 수 없습니다. Save changes 를 선택합니다. 머지 커밋 # 기본적으로 GitLab은 브랜치를 main 에 머지할 때 머지 커밋을 만듭니다. 머지 시 스쿼시 여부와 관계없이 별도의 머지 커밋이 항상 생성됩니다. 이 전략을 사용하면 main 브랜치에 스쿼시 커밋과 머지 커밋이 모두 추가될 수 있습니다. 다음 다이어그램은 Merge commit 전략을 사용할 때 feature 브랜치가 main 에 머지되는 방식을 보여 줍니다. 이는 git merge --no-ff <feature> 명령을 실행하고, GitLab UI에서 Merge method 로 Merge commit 을 선택한 것과 동일합니다. Merge commit 방법으로 기능 브랜치를 머지하면 main 브랜치는 다음과 같습니다. Mermaid 다이어그램 (12줄) 소스 코드 보기 %%{init: { 'gitGraph': {'logLevel': 'debug', 'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'main', 'fontFamily': 'GitLab Sans'}} }%% gitGraph accTitle: D