Merge Request의 변경 사항

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

Merge Request은 귀하의 리포지터리의 브랜치에 있는 파일의 변경 세트를 제안합니다. 이러한 변경 사항은 현재 상태와 제안된 변경 사이의 _차이(diff)_로 표시됩니다. 기본적으로 diff는 귀하의 제안된 변경 사항(소스 브랜치)을 대상 브랜치와 비교합니다. 기본적으로 파일의 변경된 부분만 표시됩니다.

이 예시는 텍스트 파일의 변경 사항을 보여줍니다. 기본 구문 강조 테마에서:

  • 현재 버전은 빨간색으로 표시되며 라인 앞에 마이너스 (-) 기호가 있습니다.
  • 제안된 버전은 초록색으로 표시되며 라인 앞에 플러스 (+) 기호가 있습니다.

소스 코드 차이의 예시 스크린샷

차이(diff)의 각 파일 헤더에는 다음이 포함됩니다:

  • 파일 내용 숨기기 () : 해당 파일의 모든 변경 사항을 숨깁니다.
  • 경로: 이 파일의 전체 경로입니다. 이 경로를 복사하려면 파일 경로 복사()를 선택하세요.
  • 변경된 라인: 파일 내에서 추가된 라인 수 및 삭제된 라인 수를 +2 -2 형식으로 표시합니다.
  • 조회됨: 이 체크박스를 선택하여 파일을 조회된 항목으로 표시하여 추가 변경 사항이 추가될 때까지 유지합니다.
  • 이 파일에 댓글 달기 () : 특정 라인에 댓글을 고정하지 않고 파일에 일반적인 댓글을 남깁니다.
  • 옵션: 더 많은 파일 조회 옵션을 표시하려면 ()를 선택하세요.

또한 차이에는 파일 왼쪽의 거터에 탐색 및 댓글 보조가 포함됩니다:

  • 더 많은 컨텍스트 표시: 이전 20줄()을 선택하여 이전 20개의 변경되지 않은 라인을 표시하거나 다음 20줄()을 선택하여 다음 20개의 변경되지 않은 라인을 표시합니다.
  • 라인 번호: 두 열에 라인 번호가 표시됩니다. 이전 라인 번호는 왼쪽에 표시되고 제안된 라인 번호는 오른쪽에 표시됩니다. 라인을 상호 작용하려면:
    • 댓글 옵션을 표시하려면 라인 번호 위에 마우스를 올리세요.
    • 라인의 링크를 복사하려면 Command를 누른 다음(또는 마우스 오른쪽 단추를 클릭한 다음) 라인 번호를 선택한 다음 링크 주소 복사를 선택하세요.
    • 라인을 강조 표시하려면 라인 번호를 선택하세요.

Merge Request의 모든 변경 사항 보기

Merge Request에 포함된 변경 사항의 차이를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 귀하의 프로젝트를 찾습니다.
  2. Code > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. Merge Request 제목 아래에서 변경 사항을 선택하세요.
  4. Merge Request에 많은 파일이 변경되었을 경우 특정 파일로 직접 이동할 수 있습니다:
    1. 파일 브라우저 표시()를 선택하거나 F를 눌러 파일 트리를 표시합니다.
    2. 보고 싶은 파일을 선택합니다.
    3. 파일 브라우저를 숨기려면 다시 파일 브라우저 표시 또는 F를 누릅니다.

많은 변경 사항이 있는 파일은 성능을 향상시키기 위해 축소됩니다. GitLab은 다음과 같은 메시지를 표시합니다: 일부 변경 사항이 표시되지 않음. 해당 파일의 변경 사항을 보려면 파일 확장을 선택하세요.

생성된 파일 축소

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
Self-managed GitLab에서는 기본적으로 이 기능을 사용할 수 있습니다. 무효화하려면 관리자가 collapse_generated_diff_files라는 피처 플래그를 비활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 있습니다.

검토자가 코드 검토를 수행하는 데 필요한 파일에 초점을 맞출 수 있도록 GitLab은 여러 일반적인 유형의 생성된 파일을 축소합니다. 이러한 파일은 코드 검토가 필요하지 않을 가능성이 높기 때문에 기본적으로 축소됩니다:

  1. .nib, .xcworkspacedata, 또는 .xcurserstate 확장자가 있는 파일.
  2. package-lock.json 또는 Gopkg.lock과 같은 패키지 잠금 파일.
  3. node_modules 폴더에 있는 파일.
  4. 최소화된 js 또는 css 파일.
  5. 소스 맵 참조 파일.
  6. 프로토콜 버퍼 컴파일러에 의해 생성된 Go 파일.

파일이나 경로를 생성된 파일로 표시하려면 .gitattributes 파일에서 해당 파일에 gitlab-generated 속성을 설정하세요.

축소된 파일 보기

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 귀하의 프로젝트를 찾습니다.
  2. Code > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. Merge Request 제목 아래에서 변경 사항을 선택하세요.
  4. 보고 싶은 파일을 찾아 파일 확장을 선택하세요.

파일 유형에 대한 축소 동작 구성

파일 유형의 기본 축소 동작을 변경하려면:

  1. 프로젝트의 루트 디렉터리에 .gitattributes 파일이 없는 경우, 이 이름의 빈 파일을 만듭니다.
  2. 수정하려는 각 파일 유형에 대해 .gitattributes 파일에 파일 확장자와 원하는 동작을 선언하는 줄을 추가하세요:

    # .txt 확장자 파일 모두 축소
    *.txt gitlab-generated
       
    # docs 디렉터리 내의 모든 파일 축소
    docs/** gitlab-generated
       
    # package-lock.json 파일은 축소하지 않음
    package-lock.json -gitlab-generated
    
  3. 변경 사항을 커밋하고 푸시하여 기본 브랜치에 Merge하세요.

변경 사항이 기본 브랜치에 Merge되면 프로젝트의 이 유형 파일은 Merge Request에서 이 동작을 사용합니다.

생성된 파일이 감지되는 방법에 대한 기술적 자세한 내용은 go-enry 리포지터리를 참조하세요.

파일 하나씩 표시

더 큰 Merge Request의 경우, 한 번에 한 파일씩 검토할 수 있습니다. 이 설정을 Merge Request별로 일시적으로 변경하거나 모든 Merge Request에 적용할 수 있습니다.

Merge Request별로

특정 Merge Request에 대한 보기 환경 설정을 일시적으로 변경하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. Merge Request 제목 아래에서 변경 내용을 선택합니다.
  4. 환경 설정 ()을 선택합니다.
  5. 한 번에 한 파일씩 표시 확인란을 선택하거나 해제합니다.

이 변경은 사용자 환경 설정의 선택을 재정의합니다. 브라우저 쿠키를 지우거나 이 동작을 다시 변경할 때까지 유지됩니다.

모든 Merge Request에 대해

모든 Merge Request에 대해 한 번에 한 파일씩 보려면:

  1. 왼쪽 사이드바에서 아바타를 선택합니다.
  2. 환경 설정을 선택합니다.
  3. 동작 섹션으로 스크롤하여 Merge Request의 변경 탭에서 한 번에 한 파일씩 표시 확인란을 선택합니다.
  4. 변경 사항 저장을 선택합니다.

이 설정을 활성화한 후에는 GitLab이 Merge Request을 검토할 때 한 번에 한 번에 한 파일씩만 표시됩니다. 다른 변경된 파일을 보려면 다음 중 하나를 선택합니다:

  • 파일 끝까지 스크롤하고 이전 또는 다음을 선택합니다.
  • 파일 탐색기 표시 ()를 선택하고 보려는 다른 파일을 선택합니다.

변경 사항 인라인으로 비교

변경 사항을 인라인으로 볼 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. 제목 아래에서 변경 내용을 선택합니다.
  4. 환경 설정 ()을 선택합니다.
  5. 변경 비교 영역에서 인라인을 선택합니다.

변경 사항은 원래 텍스트 뒤에 표시됩니다.

인라인 변경

변경 사항 옆으로 비교

Merge Request의 변경 사항 길이에 따라 변경을 인라인으로 또는 옆으로 보는 것이 더 쉬울 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. 제목 아래에서 변경 내용을 선택합니다.
  4. 환경 설정 ()을 선택합니다.
  5. 변경 비교 영역에서 옆으로 표시를 선택합니다.

변경 사항이 서로 마주보며 표시됩니다.

옆으로 변경 여부

주석 확장 또는 축소

코드 변경을 검토할 때 인라인 주석을 숨길 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. 제목 아래에서 변경 내용을 선택합니다.
  4. 주석을 숨기려는 파일로 스크롤합니다.
  5. 주석이 첨부된 라인으로 스크롤하고 축소 ()를 선택합니다: 주석 축소

인라인 주석을 확장하여 다시 표시하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. 제목 아래에서 변경 내용을 선택합니다.
  4. 축소한 주석을 표시하려는 파일로 스크롤합니다.
  5. 주석이 첨부된 라인으로 스크롤하고 사용자 아바타를 선택합니다: 주석 확장

공백 변경 무시

Merge Request에서 공백 변경은 본질적인 변경을 보는 데 더 어렵게 만들 수 있습니다. 공백 변경을 숨기거나 표시할 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. 제목 아래에서 변경 내용을 선택합니다.
  4. 변경된 파일 디렉터리 앞에서 환경 설정 ()을 선택합니다.
  5. 공백 변경 표시 확인란을 선택하거나 해제합니다:

    변경된 MR

파일을 본 것으로 표시

여러 번 파일을 검토하는 Merge Request을 검토할 때 이미 검토한 파일을 무시할 수 있습니다. 마지막 검토 이후 내용이 변경되지 않은 파일을 숨기려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. 제목 아래에서 변경 내용을 선택합니다.
  4. 파일 헤더에서 본 것 확인란을 선택합니다.

본 것으로 표시된 파일은 해당 내용이 변경되지 않는 한 다시 표시되지 않습니다.

  • 그 내용에 새로운 변경이 발생하는 경우.
  • 본 것 확인란을 해제하는 경우.

Merge Request에서 충돌 표시

Merge Request의 충돌이 발생할 경우, 소스 브랜치와 대상 브랜치 간의 충돌을 보여줍니다. 각 충돌 파일에 대한 경고가 Merge Request의 차이에 표시됩니다:

Merge Request 차이에 표시된 충돌 경고 예시

diff에서 스캐너 결과 보기

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

diff에서 스캐너 결과를 확인할 수 있습니다. 자세한 내용은 아래에서 확인하세요:

Merge Request 파일에 댓글 추가

Merge Request diff 파일에 주석을 추가할 수 있습니다. 이러한 주석은 리베이스와 파일 변경을 거쳐도 유지됩니다.

Merge Request 파일에 주석을 추가하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
  3. 변경 사항을 선택합니다.
  4. 댓글을 달고 싶은 파일의 헤더에서 댓글을 선택합니다 ().

이미지에 댓글 추가

Merge Request 및 커밋 상세 보기에서 이미지에 댓글을 추가할 수 있습니다. 이 댓글은 스레드로도 작용할 수 있습니다.

  1. 이미지 위로 마우스를 올립니다.
  2. 댓글을 달고 싶은 위치를 선택합니다.

이미지 위에 아이콘이 표시되고 댓글 필드가 표시됩니다.

리소스

  • 두 개의 리비전 간의 차이를 GitLab이 어떻게 계산하는지에 대한 기술적인 세부 정보는 차이점 작업을 참조하세요.