5.3 Commit 취소

약 6분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

5.3 Commit 취소

Git에서 Commit은 프로젝트의 특정 상태를 기록하고 나중에 그 상태로 돌아갈 수 있도록 하는 기능입니다. 하지만 때때로 실수로 잘못된 내용을 Commit할 수 있습니다. 이럴 때 Commit을 취소해야 할 필요가 있습니다. 여기서는 Commit을 취소하는 다양한 방법에 대해 설명합니다. 이러한 작업을 하면서 Git의 유연성을 경험할 수 있습니다.

Commit을 취소하는 방법은 주로 세 가지입니다: git reset, git revert, 그리고 git checkout입니다. 각 방법은 상이한 상황에서 사용되며, 그에 따른 결과도 다릅니다.

1. git reset

git reset은 마지막 Commit을 취소하고, 해당 변경 사항을 Staging Area로 되돌립니다. 즉, 커밋한 파일들은 그대로 남아있지만, 다시 수정할 수 있는 상태가 됩니다.

예를 들어, 실수로 커밋한 내용을 취소하고 초기 상태로 되돌리고 싶다고 가정해보겠습니다.

예제

  1. 상태: feat: Add contact form 이라는 메시지로 Commit이 되어 있습니다.
  2. git reset HEAD~1 명령어를 실행합니다.
    1. 실행 전 커밋 로그:
    commit 1234567 (HEAD -> main)
    Author: Example <example@domain.com>
    Date:   Tue Oct 10 10:00:00 2023 +0900
    
        feat: Add contact form
    
    1. 해당 명령어 실행 후:
    • 변경 사항이 Staging Area로 되돌아갑니다.
    git status
    

코드 블록:

git reset HEAD~1

2. git revert

git revert는 이미 push된 Commit을 취소할 때 사용하는 안전한 방법입니다. 이 명령어는 원래의 Commit을 취소하는 새로운 Commit을 생성합니다. 따라서 Git History는 변하지 않으며, 협업할 때 다른 팀원과의 충돌을 피할 수 있습니다.

예를 들어, 잘못된 Commit을 되돌리기 위해 git revert <commit_hash>를 사용할 수 있습니다.

예제

  1. 잘못된 Commit을 원복하기 위해 git revert를 실행합니다.
  2. 명령어:
    git revert 1234567
    
  3. 결과:
    • 새로운 Commit이 생성되며, 이전의 변경 사항을 역으로 적용합니다.

코드 블록:

git revert 1234567

3. git checkout

가끔은 최신 Commit을 취소하고 단순히 특정 파일로 되돌리고 싶을 수 있습니다. 이 경우 git checkout을 사용하여 특정 파일을 이전 상태로 되돌릴 수 있습니다.

예제

  1. git checkout HEAD^ -- path/to/file 명령어로 특정 파일만 이전 상태로 복원할 수 있습니다.
  2. 명령어:
    git checkout HEAD^ -- contact-form.html
    

코드 블록:

git checkout HEAD^ -- contact-form.html

실습

  • 간단한 실습으로 실수로 Commit한 내용을 취소해 보세요. 적절한 명령어를 선택하여 본인의 상황에 맞게 변경해보세요.
  • 명령어 실행 후, 변경 사항을 확인하고 잘 적용되었는지 확인합니다.
  • 여러 방법을 시도하여 각 방법이 실제로 어떻게 작동하는지 실습해 보세요.

협업

  • 여러 팀원과 작업할 때는 git revert와 같은 안전한 방법을 사용하여 Commit을 취소하는 것이 중요합니다. 모든 팀원들이 변경 내용에 대해 이해하고 서로의 작업을 존중하면서 진행해야 합니다.

정리

이번 장에서는 Git의 Commit 취소 방법에 대해 배웠습니다. 실수한 Commit을 수정하는 다양한 방법을 익히고, 각각의 상황에 맞는 적절한 방법을 선택하는 것이 중요합니다. 각 명령어의 결과를 확인하고 이를 프로젝트 관리에 적용해보세요.

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.