변경 사항 되돌리기

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

개별 커밋 또는 전체 Merge Request을 GitLab에서 되돌릴 수 있습니다. Git에서 커밋을 되돌리면 원본 커밋에서 수행된 모든 작업을 뒤집는 새로운 커밋이 생성됩니다.

  • 원본 커밋에 추가된 행은 제거됩니다.
  • 원본 커밋에서 제거된 행은 다시 추가됩니다.
  • 원본 커밋에서 수정된 행은 이전 상태로 복원됩니다.

되돌린 커밋도 프로젝트의 액세스 제어 및 프로세스의 영향을 받습니다.

Merge Request 되돌리기

Merge Request이 Merge되면 Merge Request의 모든 변경 사항을 되돌릴 수 있습니다.

필수 조건:

  • 프로젝트에서 Merge Request을 편집하고 리포지터리에 코드를 추가할 수 있는 역할이 있어야 합니다.
  • 프로젝트는 프로젝트의 설정 > Merge Request에서 설정된 Merge 방법Merge 커밋을 사용해야 합니다.

    GitLab 16.9 이상에서는 GitLab UI에서 단일 커밋이 포함된 Merge Request이 스쿼시되었거나 Merge Request에 단일 커밋이 포함된 경우에만 빠른 순방향 커밋을 되돌릴 수 있습니다.

다음을 수행하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > Merge Request을 선택하고 Merge Request을 식별합니다.
  3. Merge Request 보고 영역으로 스크롤하여 Merge Request이 Merge된 시간을 보여주는 보고서를 찾습니다.
  4. 되돌리기를 선택합니다.
  5. 브랜치에서 되돌리기에서 변경 사항을 되돌릴 브랜치를 선택합니다.
  6. (선택 사항) 새로운 되돌린 커밋으로 새로운 Merge Request을 시작하려면 새로운 Merge Request 시작을 선택합니다.
  7. 되돌리기를 선택합니다.

Merge Request이 되돌려진 후에 되돌리기 옵션이 더 이상 표시되지 않습니다.

커밋 되돌리기

리포지터리의 모든 커밋을 다음 중 하나로 되돌릴 수 있습니다.

  • 현재 브랜치
  • 새 Merge Request

필수 조건:

  • 프로젝트에서 Merge Request을 편집하고 리포지터리에 코드를 추가할 수 있는 역할이 있어야 합니다.
  • 커밋이 이미 되돌려지지 않은 경우이어야 합니다. 왜냐하면 되돌리기 옵션이 이 경우에는 표시되지 않습니다.

다음을 수행하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 커밋을 포함하는 Merge Request을 알고 있다면:
    1. 코드 > Merge Request을 선택한 다음 Merge Request을 선택합니다.
    2. 커밋을 선택한 다음 되돌리고자 하는 커밋의 제목을 선택합니다. 이렇게 하면 커밋이 Merge Request의 문맥에서 표시됩니다.
    3. 하위 메뉴 아래에 메시지 커밋 00001111 보기가 표시됩니다. 여기서 00001111은 커밋의 해시입니다. 커밋 해시를 선택하여 커밋 페이지를 표시합니다.
  3. 커밋이 유래된 Merge Request을 모른다면:
    1. 코드 > 커밋을 선택합니다.
    2. 커밋의 제목을 선택하여 커밋에 대한 전체 정보를 표시합니다.
  4. 오른쪽 상단에서 옵션을 선택한 다음 되돌리기를 선택합니다.
  5. 브랜치에서 되돌리기에서 변경 사항을 되돌릴 브랜치를 선택합니다.
  6. (선택 사항) 새로운 되돌린 커밋으로 새로운 Merge Request을 시작하려면 새로운 Merge Request 시작을 선택합니다.
  7. 되돌리기를 선택합니다.

다른 상위 커밋에 대한 Merge 커밋 되돌리기

Merge 커밋을 되돌리면 Merge한 브랜치(일반적으로 main)가 항상 첫 번째 부모입니다. 다른 상위 커밋에 대해 Merge 커밋을 되돌리려면 명령줄에서 해당 커밋을 되돌려야 합니다.

  1. 되돌아가고자 하는 부모 커밋의 SHA를 식별합니다.
  2. 되돌아갈 커밋의 부모 번호를 식별합니다. (첫 번째 부모의 경우 기본값은 1입니다.)
  3. 이 명령을 수정하여 2를 부모 번호로, 7a39eb0을 커밋 SHA로 바꿉니다.

    git revert -m 2 7a39eb0
    

관련 주제