Git에서 특정 커밋으로 원복하기
개발을 하다 보면 특정 시점으로 돌아가야 할 때가 있습니다. Git을 사용하면 특정 커밋으로 쉽게 원복할 수 있습니다. 이 글에서는 Git에서 특정 커밋으로 원복하는 방법을 단계별로 설명하겠습니다.
커밋 해시 확인하기
먼저, 원복하려는 특정 커밋의 해시를 확인해야 합니다. 커밋 해시를 확인하는 방법은 다음과 같습니다:
git log
이 명령어를 실행하면 커밋 히스토리가 출력됩니다. 각 커밋에는 고유한 해시가 있습니다. 예를 들어:
commit abc1234
Author: John Doe <johndoe@example.com>
Date: Tue Jul 20 14:53:22 2023 -0700
Fixed bug in user authentication
여기서 `abc1234`가 커밋 해시입니다.
특정 커밋으로 체크아웃하기
특정 커밋으로 코드를 원복하려면 해당 커밋으로 체크아웃합니다. 예를 들어, `abc1234` 커밋으로 체크아웃하려면 다음 명령어를 사용합니다:
git checkout abc1234
이 명령어를 실행하면 해당 커밋 시점으로 코드가 변경되지만, 'detached HEAD' 상태가 됩니다. 이 상태에서는 변경 사항을 커밋할 수 있지만, 기존 브랜치에 영향을 주지 않습니다.
특정 커밋으로 브랜치 리셋하기
기존 브랜치를 특정 커밋으로 되돌리고 싶다면, `reset` 명령어를 사용합니다. 예를 들어, 현재 브랜치를 `abc1234` 커밋으로 리셋하려면:
git reset --hard abc1234
이 명령어는 현재 브랜치의 히스토리를 `abc1234` 커밋으로 되돌립니다. `--hard` 옵션은 작업 디렉토리의 파일들도 해당 커밋 상태로 변경합니다.
주의: 이 작업은 되돌릴 수 없으므로, 신중하게 사용해야 합니다.
`revert` 명령어를 사용하여 특정 커밋 원복하기
`revert` 명령어는 기존 히스토리를 유지하면서 특정 커밋을 취소하는 방법입니다. 예를 들어, `abc1234` 커밋을 원복하려면:
git revert abc1234
이 명령어는 `abc1234` 커밋의 변경 사항을 취소하는 새로운 커밋을 생성합니다. 이 방법은 기존 히스토리를 보존하므로, 협업 환경에서 안전하게 사용할 수 있습니다.
유용한 명령어 요약
작업 | 명령어 |
커밋 히스토리 확인 | git log |
특정 커밋으로 체크아웃 | git checkout <커밋해시> |
특정 커밋으로 브랜치 리셋 | git reset --hard <커밋해시> |
특정 커밋 원복 (revert) | git revert <커밋해시> |
'Programming' 카테고리의 다른 글
git patch 만들기와 적용하기 (0) | 2024.07.24 |
---|---|
Git 변경이력 확인하기 (git blame) (2) | 2024.07.24 |
Git Submodule 사용법 (0) | 2024.07.24 |
Git 특정 Tag로 원복하기 (1) | 2024.07.24 |
Git Remote Branch 확인 방법 (0) | 2024.07.24 |