변경 사항 되돌리기
개별 커밋 또는 전체 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에 단일 커밋이 포함된 경우에만 빠른 순방향 커밋을 되돌릴 수 있습니다.
다음을 수행하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > Merge Request을 선택하고 Merge Request을 식별합니다.
- Merge Request 보고 영역으로 스크롤하여 Merge Request이 Merge된 시간을 보여주는 보고서를 찾습니다.
- 되돌리기를 선택합니다.
- 브랜치에서 되돌리기에서 변경 사항을 되돌릴 브랜치를 선택합니다.
- (선택 사항) 새로운 되돌린 커밋으로 새로운 Merge Request을 시작하려면 새로운 Merge Request 시작을 선택합니다.
- 되돌리기를 선택합니다.
Merge Request이 되돌려진 후에 되돌리기 옵션이 더 이상 표시되지 않습니다.
커밋 되돌리기
리포지터리의 모든 커밋을 다음 중 하나로 되돌릴 수 있습니다.
- 현재 브랜치
- 새 Merge Request
필수 조건:
- 프로젝트에서 Merge Request을 편집하고 리포지터리에 코드를 추가할 수 있는 역할이 있어야 합니다.
- 커밋이 이미 되돌려지지 않은 경우이어야 합니다. 왜냐하면 되돌리기 옵션이 이 경우에는 표시되지 않습니다.
다음을 수행하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 커밋을 포함하는 Merge Request을 알고 있다면:
- 코드 > Merge Request을 선택한 다음 Merge Request을 선택합니다.
- 커밋을 선택한 다음 되돌리고자 하는 커밋의 제목을 선택합니다. 이렇게 하면 커밋이 Merge Request의 문맥에서 표시됩니다.
- 하위 메뉴 아래에 메시지 커밋
00001111
보기가 표시됩니다. 여기서00001111
은 커밋의 해시입니다. 커밋 해시를 선택하여 커밋 페이지를 표시합니다.
- 커밋이 유래된 Merge Request을 모른다면:
- 코드 > 커밋을 선택합니다.
- 커밋의 제목을 선택하여 커밋에 대한 전체 정보를 표시합니다.
- 오른쪽 상단에서 옵션을 선택한 다음 되돌리기를 선택합니다.
- 브랜치에서 되돌리기에서 변경 사항을 되돌릴 브랜치를 선택합니다.
- (선택 사항) 새로운 되돌린 커밋으로 새로운 Merge Request을 시작하려면 새로운 Merge Request 시작을 선택합니다.
- 되돌리기를 선택합니다.
다른 상위 커밋에 대한 Merge 커밋 되돌리기
Merge 커밋을 되돌리면 Merge한 브랜치(일반적으로 main
)가 항상 첫 번째 부모입니다. 다른 상위 커밋에 대해 Merge 커밋을 되돌리려면
명령줄에서 해당 커밋을 되돌려야 합니다.
- 되돌아가고자 하는 부모 커밋의 SHA를 식별합니다.
- 되돌아갈 커밋의 부모 번호를 식별합니다. (첫 번째 부모의 경우 기본값은 1입니다.)
-
이 명령을 수정하여
2
를 부모 번호로,7a39eb0
을 커밋 SHA로 바꿉니다.git revert -m 2 7a39eb0