변경 관리 되돌리기

세부 정보:

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

GitLab에서 개별 커밋 또는 전체 머지 요청을 되돌릴 수 있습니다.

Git에서 커밋을 되돌리면 원래 커밋에서 수행된 모든 작업을 역전시키는 새로운 커밋을 생성합니다. 새로운 커밋은:

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

당신의 되돌리기 커밋은 여전히 프로젝트의 접근 제어 및 프로세스의 적용을 받습니다.

머지 요청 되돌리기

머지 요청이 병합된 후, 머지 요청의 모든 변경 사항을 되돌릴 수 있습니다.

필수 조건:

  • 프로젝트에서 머지 요청을 편집하고 코드에 추가할 수 있는 역할을 가져야 합니다.
  • 귀하의 프로젝트는 Settings > Merge requests에 설정된 병합 방법 Merge Commit을 사용해야 합니다.

GitLab 16.9 및 이후 버전에서는 다음 중 하나의 경우 GitLab UI에서 빠른 전달된 커밋을 되돌릴 수 있습니다:

  • 커밋이 압축되었거나
  • 머지 요청에 단일 커밋이 포함되어 있습니다.

머지 요청 Example을 되돌리려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Code > Merge requests를 선택합니다.
  3. 보조 메뉴에서 Merged를 선택하고, 머지 요청(Example)을 선택합니다.
  4. 머지 요청 보고서 영역으로 스크롤하여 Merged by 정보를 보여주는 보고서를 찾습니다.
  5. Revert를 선택합니다.
  6. Revert in branch에서 변경 사항을 되돌릴 브랜치를 선택합니다.
  7. 머지 요청 없이 즉시 되돌리려면:
    1. Start a new merge request를 지웁니다.
    2. Revert를 선택하면 Example의 되돌리기가 완료됩니다.
  8. 즉시 되돌리지 않고 새로운 머지 요청에서 되돌리기를 검토하려면 Start a new merge request를 선택하고:
    1. 되돌리기 머지 요청 필드를 입력한 후 Create merge request를 선택합니다.
    2. 머지 요청이 병합되면 Example의 되돌리기가 완료됩니다.

Example 머지 요청을 되돌린 후, 더 이상 Revert 옵션이 표시되지 않습니다.

커밋 되돌리기

저장소의 어떤 커밋도 다음과 같이 되돌릴 수 있습니다:

  • 현재 브랜치.
  • 새로운 머지 요청.

필수 조건:

  • 프로젝트에 대해 머지 요청을 편집하고 코드에 추가할 수 있는 역할이 있어야 합니다.
  • 커밋은 이미 되돌려지지 않아야 하며, 이 경우 Revert 옵션이 표시되지 않습니다.

이를 수행하려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 커밋을 포함하는 머지 요청을 알고 있는 경우:
    1. Code > Merge requests를 선택한 후 머지 요청을 선택합니다.
    2. Commits를 선택한 후 되돌리려는 커밋 제목을 선택합니다.
      그러면 머지 요청의 맥락에서 커밋이 표시됩니다.
    3. 보조 메뉴 아래에서 GitLab은 Viewing commit 00001111 메시지를 표시하며, 여기서 00001111은 커밋의 해시입니다. 커밋 해시를 선택하면
      커밋 페이지가 표시됩니다.
  3. 커밋이 발생한 머지 요청을 모르는 경우:
    1. Code > Commits를 선택합니다.
    2. 커밋 제목을 선택하여 커밋에 대한 전체 정보를 표시합니다.
  4. 오른쪽 상단 모서리에서 Options를 선택한 후 Revert를 선택합니다.
  5. Revert in branch에서 변경 사항을 되돌릴 브랜치를 선택합니다.
  6. 머지 요청 없이 즉시 되돌리려면:
    1. Start a new merge request를 지웁니다.
    2. Revert를 선택합니다.
  7. 즉시 되돌리지 않고 새로운 머지 요청에서 되돌리기를 검토하려면 Start a new merge request를 선택하고:
    1. 되돌리기 머지 요청의 필드를 입력한 후 Create merge request를 선택합니다.
    2. 머지 요청이 병합되면 커밋 되돌리기가 완료됩니다.

머지 커밋을 다른 부모 커밋으로 되돌리기

머지 커밋을 되돌릴 때, 머지한 브랜치(종종 main)는 항상 첫 번째 부모입니다.

다른 부모로 머지 커밋을 되돌리려면,

명령 줄에서 커밋을 되돌려야 합니다:

  1. 되돌리려는 부모 커밋의 SHA를 식별합니다.

  2. 되돌리려는 커밋의 부모 번호를 식별합니다. (기본값은 첫 번째 부모인 1입니다.)

  3. 다음 명령을 실행하여 2를 부모 번호로, 7a39eb0을 커밋 SHA로 바꿉니다:

    git revert -m 2 7a39eb0
    

관련 주제