본문 바로가기
Programming

Git에서 특정 커밋으로 원복하기

by 느리게 걷는 즐거움 2024. 7. 24.
반응형

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