변경 사항 제안
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
리뷰어는 머지 리퀘스트 diff 스레드에서 Markdown 문법으로 코드 변경을 제안할 수 있습니다. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다. 왼쪽 사이드바에서 Code > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.
리뷰어는 머지 리퀘스트 diff 스레드에서 Markdown 문법으로 코드 변경을 제안할 수 있습니다. 머지 리퀘스트 작성자(또는 해당 권한이 있는 다른 사용자)는 GitLab UI에서 제안 중 일부 또는 전부를 적용할 수 있습니다. 제안을 적용하면 변경을 제안한 사용자를 작성자로 하는 커밋이 머지 리퀘스트에 추가됩니다.
제안 생성#
-
상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 Code > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.
-
보조 메뉴에서 Changes를 선택합니다.
-
변경하려는 코드 줄을 찾습니다.
- 한 줄만 선택하려면 줄 번호 위에 마우스를 올린 다음 Add a comment to this line([comment])을 선택합니다.
- 여러 줄을 선택하려면 다음 단계를 따릅니다.
-
줄 번호 위에 마우스를 올린 다음 Add a comment to this line([comment])을 선택합니다.

-
원하는 줄이 모두 포함되도록 끌어서 선택 범위를 넓힙니다. 자세한 내용은 여러 줄 제안을 참고합니다.
-
- 특정 줄이 아니라 파일 전체에 댓글을 달려면 해당 파일 헤더에서 Comment on this file([comment])을 선택합니다.
-
댓글 도구 모음에서 Insert suggestion([doc-code])을 선택합니다. 그러면 다음과 같이 내용이 채워진 코드 블록이 댓글에 삽입됩니다.
```suggestion:-0+0 The content of the line you selected is shown here. ``` -
미리 채워진 코드 블록을 편집해 제안 내용을 작성합니다.
-
댓글을 바로 등록하려면 Add comment now를 선택하거나 다음 키보드 단축키를 사용합니다.
- macOS: Shift+Command+Enter
- 그 밖의 운영 체제: Shift+Control+Enter
-
리뷰를 마칠 때까지 댓글을 게시하지 않으려면 Start a review를 선택하거나 다음 키보드 단축키를 사용합니다.
- macOS: Command+Enter
- 그 밖의 운영 체제: Control+Enter
여러 줄 제안#
히스토리
- GitLab 17.7에서 여러 줄 제안이 코드 블록을 포함한 제안도 렌더링하도록 변경되었습니다.
머지 리퀘스트 diff를 검토할 때 다음 방법으로 한 번의 제안에서 여러 줄(최대 200줄)의 변경을 제안할 수 있습니다.
- 제안 생성에서 설명한 대로 끌어서 선택합니다. GitLab 이 제안 블록을 대신 생성합니다.
- 한 줄을 선택한 다음 제안 블록의 범위 오프셋을 직접 수정합니다.
제안 첫 줄의 범위 오프셋은 선택한 줄을 기준으로 한 상대 줄 번호를 나타냅니다. 이 오프셋은 제안이 대체할 줄을 지정합니다. 예를 들어 다음 제안은 댓글을 단 줄의 위 2줄과 아래 2줄을 포함합니다.
```suggestion:-2+2
## Prevent approval by author
By default, the author of a merge request cannot approve it. To change this setting:
```
적용하면 이 제안은 댓글을 단 줄의 위 2줄부터 아래 2줄까지를 대체합니다.

GitLab은 여러 줄 제안의 범위를 댓글을 단 diff 줄의 위 100줄, 아래 100줄로 제한합니다. 따라서 제안 하나로 최대 201줄까지 변경할 수 있습니다.
여러 줄 댓글은 댓글 본문 위에 해당 댓글의 줄 번호를 표시합니다.

리치 텍스트 편집기 사용#
제안을 삽입할 때 WYSIWYG 리치 텍스트 편집기를 사용하면 UI에서 소스 파일의 줄 번호를 위아래로 조정할 수 있습니다.
변경할 줄을 추가하거나 줄이려면 From line 옆에서 + 또는 **-**를 선택합니다.

제안 적용#
사전 요구 사항:
- 머지 리퀘스트의 작성자이거나 프로젝트의 Developer, Maintainer 또는 Owner 권한이 있어야 합니다.
머지 리퀘스트에서 바로 제안된 변경을 적용하려면 다음 단계를 따릅니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Code > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.
- 적용하려는 제안이 담긴 댓글을 찾습니다.
- 제안을 하나씩 적용하려면 Apply suggestion을 선택합니다.
- 여러 제안을 한 커밋으로 적용하려면 Add suggestion to batch를 선택합니다.
- 선택 사항. 변경 내용을 설명하는 커밋 메시지를 직접 입력합니다. 직접 입력하지 않으면 기본 커밋 메시지가 사용됩니다.
- Apply를 선택합니다.
제안을 적용하면 GitLab은 다음을 수행합니다.
- 해당 제안을 Applied로 표시합니다.
- 댓글 스레드를 해결 처리합니다.
- 변경 사항을 담은 새 커밋을 생성합니다.
- (사용자에게 Developer 권한이 있는 경우) 제안된 변경을 머지 리퀘스트 브랜치의 코드베이스에 바로 푸시합니다.
제안 거부#
사전 요구 사항:
- 머지 리퀘스트의 작성자이거나 프로젝트의 Developer, Maintainer 또는 Owner 권한이 있어야 합니다.
머지 리퀘스트에서 바로 제안된 변경을 거부하려면 다음 단계를 따릅니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Code > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.
- 거부하려는 제안이 담긴 댓글을 찾습니다.
- 선택 사항. 제안을 거부하는 이유를 답글로 남깁니다.
- Resolve thread를 선택합니다.
적용된 제안에 대한 커밋 메시지 구성#
GitLab은 제안을 적용할 때 기본 커밋 메시지를 사용하며, 이 메시지는 변경할 수
있습니다. 이 메시지는 자리 표시자를 지원합니다. 예를 들어 기본 메시지
Apply %{suggestions_count} suggestion(s) to %{files_count} file(s)는 서로 다른 파일 두 개에
제안 세 개를 적용하면 다음과 같이 렌더링됩니다.
Apply 3 suggestion(s) to 2 file(s)
포크에서 생성한 머지 리퀘스트는 대상 프로젝트에 정의된 템플릿을 사용합니다. 프로젝트의 필요에 맞게 이 메시지를 사용자 지정하고 다른 자리 표시자 변수를 포함할 수 있습니다.
사전 요구 사항:
- Maintainer 권한이 있어야 합니다.
설정 방법은 다음과 같습니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Merge suggestions로 이동해 필요에 맞게 텍스트를 수정합니다. 이 메시지에 사용할 수 있는 자리 표시자 목록은 지원되는 변수를 참고합니다.
지원되는 변수#
적용된 제안에 대한 커밋 메시지 템플릿은 다음 변수를 지원합니다.
| 변수 | 설명 | 출력 예시 |
|---|---|---|
%{branch_name} |
제안이 적용된 브랜치의 이름. | my-feature-branch |
%{files_count} |
제안이 적용된 파일 수. | 2 |
%{file_paths} |
제안이 적용된 파일의 경로. 경로는 쉼표로 구분됩니다. | docs/index.md, docs/about.md |
%{project_path} |
프로젝트 경로. | my-group/my-project |
%{project_name} |
프로젝트의 사람이 읽을 수 있는 이름. | My Project |
%{suggestions_count} |
적용된 제안 수. | 3 |
%{username} |
제안을 적용하는 사용자의 사용자 이름. | user_1 |
%{user_full_name} |
제안을 적용하는 사용자의 전체 이름. | User 1 |
%{co_authored_by} |
Co-authored-by Git 커밋 트레일러 형식의 제안 작성자 이름 및 이메일. |
Co-authored-by: Zane Doe <zdoe@example.com> Co-authored-by: Blake Smith <bsmith@example.com> |
예를 들어 커밋 메시지가 Addresses user_1's review로 출력되도록 하려면
사용자 지정 텍스트를 Addresses %{username}'s review로
설정합니다.
배치 제안#
사전 요구 사항:
- 소스 브랜치에 커밋할 수 있는 프로젝트 권한이 있어야 합니다.
브랜치에 추가되는 커밋 수를 줄이려면 여러 제안을 한 커밋으로 적용합니다.
-
상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 Code > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.
-
적용하려는 제안마다 Add suggestion to batch를 선택합니다.
-
선택 사항. 제안을 빼려면 Remove from batch를 선택합니다.
-
원하는 제안을 모두 추가한 다음 Apply suggestions를 선택합니다.
[!warning] 제안 배치를 적용하면 결과 커밋에 사용자가 Git 작성자와 Git 커밋 작성자로 모두 기록됩니다. 프로젝트에 커밋을 추가한 사용자의 승인을 방지하도록 설정했다면 해당 머지 리퀘스트를 승인할 수 없습니다.
-
선택 사항. 변경 내용을 설명하는 커밋 메시지를 배치 제안에 직접 입력합니다. 지정하지 않으면 기본 커밋 메시지가 사용됩니다.