변경 사항 제안
Offering: 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])을 선택합니다. GitLab이 댓글에 미리 채워진 코드 블록을 삽입합니다:
```suggestion:-0+0 선택한 라인의 내용이 여기에 표시됩니다. ``` -
미리 채워진 코드 블록을 편집하여 제안을 추가합니다.
-
댓글을 즉시 추가하려면 Add comment now를 선택하거나 키보드 단축키를 사용합니다:
- macOS: Shift+Command+Enter
- 다른 모든 OS: Shift+Control+Enter
-
리뷰를 완료할 때까지 댓글을 게시하지 않으려면 Start a review를 선택하거나 키보드 단축키를 사용합니다:
- macOS: Command+Enter
- 다른 모든 OS: Control+Enter
여러 줄 제안#
히스토리
- GitLab 17.7에서 제안에 코드 블록이 포함된 경우 렌더링을 지원하도록 여러 줄 제안이 변경됨.
머지 리퀘스트 diff를 검토할 때 다음 방법 중 하나로 단일 제안에서 여러 라인(최대 200라인)에 대한 변경을 제안할 수 있습니다:
- 제안 생성에서 설명한 대로 선택하고 드래그합니다. GitLab이 제안 블록을 자동으로 생성합니다.
- 단일 라인을 선택한 후 제안 블록에서 범위 오프셋을 수동으로 편집합니다.
제안의 첫 번째 줄의 범위 오프셋은 선택한 줄에 상대적인 줄 번호를 설명합니다. 오프셋은 제안이 대체하려는 줄을 지정합니다. 예를 들어, 이 제안은 댓글이 달린 줄 위의 2줄과 아래의 2줄을 포함합니다:
```suggestion:-2+2
## 작성자에 의한 승인 방지
기본적으로 머지 리퀘스트의 작성자는 자신의 머지 리퀘스트를 승인할 수 없습니다. 이 설정을 변경하려면:
```
적용되면 제안이 댓글이 달린 줄 위의 2줄부터 아래의 2줄까지 대체합니다:

GitLab은 여러 줄 제안을 댓글이 달린 diff 줄 위 100줄 및 아래 100줄로 제한합니다. 이를 통해 제안당 최대 201개의 변경된 줄을 허용합니다.
여러 줄 댓글은 댓글 본문 위에 댓글의 줄 번호를 표시합니다:

리치 텍스트 편집기 사용#
히스토리
- GitLab 16.1에서
content_editor_on_issues라는 플래그와 함께 도입됨. 기본적으로 비활성화됨. - GitLab 16.2에서 GitLab.com 및 GitLab Self-Managed에서 활성화됨.
- GitLab 16.5에서 기능 플래그
content_editor_on_issues제거됨.
제안을 삽입할 때 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] 여러 작성자의 변경 사항이 포함된 배치 제안을 적용하면 결과 커밋이 귀하를 작성자로 크레딧합니다. 프로젝트에서 커밋을 추가한 사용자의 승인을 방지하도록 구성한 경우 이 머지 리퀘스트에서 더 이상 승인 자격이 없습니다.
-
선택 사항. 배치 제안에 대한 변경 사항을 설명하기 위한 사용자 지정 커밋 메시지를 제공합니다. 지정하지 않으면 기본 커밋 메시지를 사용합니다.
