변경 사항 되돌리기

티어: Free, Premium, Ultimate 오퍼링: GitLab.com, Self-managed, GitLab Dedicated

당신은 GitLab에서 개별 커밋 또는 전체 병합 요청을 되돌릴 수 있습니다.

Git에서 커밋을 되돌리면 원본 커밋에서 수행한 모든 작업을 뒤집는 새로운 커밋이 생성됩니다. 새로운 커밋은 다음을 수행합니다.

  • 원본 커밋에서 추가된 줄을 제거합니다.
  • 원본 커밋에서 제거된 줄을 복원합니다.
  • 원본 커밋에서 수정된 줄을 이전 상태로 복원합니다.

당신의 되돌린 커밋은 여전히 프로젝트의 액세스 제어 및 프로세스의 영향을 받습니다.

병합 요청 되돌리기

병합 요청이 병합되면, 해당 병합 요청의 모든 변경 사항을 되돌릴 수 있습니다.

전제 조건:

  • 프로젝트에 대한 역할을 가지고 있어야 하며, 병합 요청을 편집하고 저장소에 코드를 추가할 수 있어야 합니다.
  • 당신의 프로젝트는 병합 방법 병합 커밋을 사용해야 합니다. 이는 프로젝트의 설정 > 병합 요청에서 설정됩니다.

    GitLab 16.9 이상에서, GitLab UI에서 빠른 전진된 커밋을 되돌릴 수 있습니다. 이 경우, - 커밋이 통합되었거나 - 병합 요청에 단일 커밋이 포함된 경우

병합 요청 예시를 되돌리려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > 병합 요청을 선택합니다.
  3. 보조 메뉴에서 병합됨을 선택하고 병합 요청(여기서 예시)을 선택합니다.
  4. 병합 요청 보고 영역으로 스크롤하고 병합자 정보를 보여주는 보고서를 찾습니다.
  5. 되돌리기를 선택합니다.
  6. 되돌릴 브랜치에서 변경 사항을 되돌릴 브랜치를 선택합니다.
  7. 즉시 되돌리려면, 병합 요청을 시작하지 않고:
    1. 새 병합 요청 시작를 지웁니다.
    2. 되돌리기를 선택하면 예시의 되돌림이 완료됩니다.
  8. 바로 되돌리지 않고 새 병합 요청에서 되돌림을 검토하려면, 새 병합 요청 시작을 선택한 후:
    1. 되돌릴 병합 요청의 필드를 작성한 후 병합 요청 생성을 선택합니다.
    2. 병합 요청이 통합되면, 예시의 되돌림이 완료됩니다.

예시 병합 요청을 되돌린 후에는 되돌리기 옵션이 더 이상 표시되지 않습니다.

커밋 되돌리기

저장소의 어떤 커밋이든 다음 중 하나로 되돌릴 수 있습니다:

  • 현재 브랜치로.
  • 새 병합 요청으로.

전제 조건:

  • 프로젝트에 대한 역할은 병합 요청을 편집하고 저장소에 코드를 추가할 수 있어야 합니다.
  • 커밋이 이미 되돌렸는지 확인해야 합니다. 이 경우 Revert 옵션이 표시되지 않습니다.

다음을 수행하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 커밋이 포함된 병합 요청을 알고 있다면:
    1. 코드 > 병합 요청을 선택한 후 병합 요청을 선택합니다.
    2. 커밋을 선택한 후 되돌리려는 커밋의 제목을 선택합니다. 이렇게 하면 병합 요청의 컨텍스트에서 커밋이 표시됩니다.
    3. 보조 메뉴 아래에서 GitLab은 커밋 00001111 보기라는 메시지를 표시하는데, 00001111은 커밋의 해시입니다. 커밋 해시를 선택하여 커밋 페이지를 표시합니다.
  3. 커밋이 어디에서 유래했는지 모르는 경우:
    1. 코드 > 커밋을 선택합니다.
    2. 커밋 제목을 선택하여 커밋에 대한 전체 정보를 표시합니다.
  4. 오른쪽 상단에서 옵션을 선택한 후 되돌리기를 선택합니다.
  5. 되돌릴 브랜치에서 변경 사항을 되돌릴 브랜치를 선택합니다.
  6. 즉시 되돌리려면, 병합 요청을 시작하지 않고:
    1. 새 병합 요청 시작를 지웁니다.
    2. 되돌리기를 선택합니다.
  7. 바로 되돌리지 않고 새 병합 요청에서 되돌림을 검토하려면, 새 병합 요청 시작을 선택한 후:
    1. 되돌릴 병합 요청의 필드를 작성한 후 병합 요청 생성을 선택합니다.
    2. 병합 요청이 통합되면, 커밋 되돌리기가 완료됩니다.

다른 부모 커밋으로 병합 커밋 되돌리기

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

  1. 되돌리려는 부모 커밋의 SHA를 식별합니다.
  2. 되돌릴 커밋의 부모 번호를 식별합니다. (첫 번째 부모는 기본값인 1로 설정됩니다.)
  3. 다음 명령을 실행하며, 2를 부모 번호로, 7a39eb0을 커밋 SHA로 대체합니다.

    git revert -m 2 7a39eb0
    

관련 주제