개요
2024.08.30-[Git] Squash - 커밋 압축하기에서 여러 개의 작은 커밋을 하나의 커밋으로 압축하는 Squash를 알아보았다.
이번 글에서는 GitLab에서 Merge Request를 머지할 때 Squash 기능을 사용하는 방법을 적어둔다.
Merge Request - Squash
GitLab에서 Merge Request를 할 때 Squash commits 체크박스를 체크하면 머지할 떄 압축된 커밋 하나와 머지 커밋 하나, 총 두 개의 커밋이 target branch에 추가된다.
기본 옵션 설정
레포지터리 설정에서 Merge Request를 생성할 때의 Squash 관련 기본값을 설정할 수 있다. 설정할 수 있는 기본값은 아래와 같다.
- Do now allow : Squash 미허용. 체크 박스 미표시.
- Allow : Squash 허용. 체크 박스 표시.
- Encorage : Squash 허용 및 체크 박스가 체크된 상태로 표시. 임의로 비활성화 할 수 있다.
- Require : Squash 항상 수행. 체크 박스가 체크된 상태로 표시. 임의로 비활성화 할 수 없다.
레포지터리의 머지 리퀘스트 설정 페이지는 레포지터리 메뉴바 > 설정 > 머지 리퀘스트로 접근할 수 있다.
머지 리퀘스트 설정 페이지에서 Squash commits when merging가 관련 항목에 해당된다.
필요에 의해 적절히 설정한 후 저장하면, 이후에 새로 생성되는 머지 리퀘스트부터 적용된다. 이전에 생성되어 오픈 상태인 머지 리퀘스트에는 소급 적용되지 않는 것 같다.
참고 문서
https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html