Git

Git 작업 되돌리기 완벽 가이드 : restore & reset 명령어 활용법

코딩 코디네이터 2025. 3. 20. 08:00
반응형

Git 작업 되돌리기 완벽 가이드 🚀 | restore & reset 명령어 활용법

Git에서 실수로 파일을 수정했거나, 특정 커밋을 취소하고 싶을 때 어떻게 해야 할까요?
이번 가이드에서는 Git 작업을 되돌리는 다양한 방법을 설명하겠습니다! 🎯

 

 

안녕하세요, 여러분! 😊

Git을 사용하다 보면 코드를 실수로 변경하거나, 특정 버전으로 되돌려야 하는 경우가 있습니다.

 

"작업 트리에서 수정한 파일을 원래대로 되돌릴 수 있을까?"

"스테이징된 변경 사항을 취소하려면 어떻게 해야 할까?"

"최신 커밋을 되돌리거나 특정 커밋으로 이동하는 방법이 궁금해!"

 

이 글에서는 Git에서 변경 사항을 되돌리는 다양한 방법을 실전 예제와 함께 쉽게 설명하겠습니다.

이제 Git의 강력한 되돌리기 기능을 자유롭게 활용해 봅시다! 🚀

1. 작업 트리에서 수정한 파일 되돌리기 (git restore) 🔄

Git을 사용하다 보면 파일을 수정했지만, 아직 스테이징하거나 커밋하지 않은 상태에서 변경 사항을 원래대로 되돌리고 싶을 때가 있습니다.

이때 git restore 명령어를 사용하면 변경된 파일을 되돌릴 수 있습니다.

수정한 파일을 원래 상태로 되돌리는 방법

# 변경된 파일을 되돌리기
$ git restore filename.txt

# 모든 변경된 파일을 되돌리기
$ git restore .

 

위 명령어를 실행하면, 해당 파일이 마지막 커밋된 상태로 되돌아갑니다.

즉, git status에서 "Changes not staged for commit"에 표시된 파일이 원래 상태로 복구됩니다.

되돌리기 전에 확인해야 할 사항

  • git restore를 실행하면 되돌린 파일의 변경 내용이 삭제되므로 신중하게 사용해야 합니다.
  • 되돌리기 전에 git diff filename.txt 명령어로 변경 내용을 확인하는 것이 좋습니다.
  • 중요한 변경 사항이라면 git stash를 사용하여 임시 저장하는 것도 좋은 방법입니다.

 

이제 git restore 명령어를 사용하여 작업 트리에서 변경된 파일을 되돌리는 방법을 살펴보았습니다.

다음 섹션에서는 스테이징된 변경 사항을 되돌리는 방법을 알아보겠습니다! 🚀

 

 

2. 스테이징된 변경 사항 되돌리기 (git restore --staged) 🔄

파일을 git add로 스테이징했지만, 이 파일을 다시 스테이징 해제(Unstage)해야 하는 경우가 있습니다.

이때 git restore --staged 명령어를 사용하면 스테이징 상태를 취소할 수 있습니다.

스테이징된 파일을 되돌리는 방법

# 특정 파일의 스테이징 해제
$ git restore --staged filename.txt

# 모든 파일의 스테이징 해제
$ git restore --staged .

 

이 명령어를 실행하면 해당 파일이 Staged 상태에서 Unstaged 상태로 변경됩니다.

즉, 파일의 변경 사항은 유지되지만, 커밋되지 않도록 상태가 변경됩니다.

되돌리기 전에 확인해야 할 사항

  • git restore --staged를 실행하면 파일이 스테이징 해제되지만, 수정된 내용은 유지됩니다.
  • 만약 변경 사항까지 되돌리려면 git restore filename.txt를 함께 실행해야 합니다.
  • 여러 파일을 한 번에 되돌리고 싶다면 git restore --staged .을 사용하면 됩니다.

이제 git restore --staged 명령어를 사용하여 스테이징된 변경 사항을 되돌리는 방법을 익혔습니다.

다음 섹션에서는 최신 커밋을 되돌리는 방법을 알아보겠습니다! 🚀

 

 

3. 최신 커밋 되돌리기 (git reset HEAD^) 🔄

Git에서 가장 최근 커밋을 취소하고 싶다면 git reset 명령어를 사용할 수 있습니다.

이 명령어는 최근 커밋을 삭제하거나 특정 상태로 되돌리는 기능을 합니다.

최근 커밋을 되돌리는 방법

# 최신 커밋을 취소하고, 변경 사항을 스테이징 상태로 유지
$ git reset --soft HEAD^

# 최신 커밋을 취소하고, 변경 사항을 작업 트리로 이동 (스테이징 해제)
$ git reset --mixed HEAD^

# 최신 커밋을 취소하고, 모든 변경 사항을 삭제 (되돌릴 수 없음)
$ git reset --hard HEAD^

 

 

위 명령어를 실행하면 가장 최근 커밋이 취소되며, 사용한 옵션에 따라 변경 사항이 다르게 처리됩니다.

옵션별 차이점 비교

옵션 설명
--soft 커밋만 취소하고, 변경 사항을 그대로 스테이징 상태로 유지
--mixed 커밋을 취소하고, 변경 사항을 스테이징 해제
--hard 커밋을 취소하고, 변경 사항까지 완전히 삭제 (주의!)

되돌리기 전에 확인해야 할 사항

  • --hard 옵션을 사용할 경우 모든 변경 사항이 삭제되므로 신중하게 사용해야 합니다.
  • 실수로 변경 사항을 삭제했을 경우 git reflog 명령어를 사용하여 복구할 수 있습니다.

이제 git reset HEAD^ 명령어를 사용하여 최신 커밋을 되돌리는 방법을 익혔습니다.

다음 섹션에서는 특정 커밋으로 되돌리는 방법을 알아보겠습니다! 🚀

 

 

4. 특정 커밋으로 되돌리기 (git reset 해시) ⏪

Git에서 특정 시점의 커밋으로 되돌리고 싶다면, git reset 명령어와 해시값(SHA-1)을 사용하면 됩니다.

이 방법을 사용하면 원하는 특정 커밋 시점으로 이동할 수 있습니다.

특정 커밋으로 되돌리는 방법

# 특정 커밋으로 이동 (스테이징 상태 유지)
$ git reset --soft <커밋 해시>

# 특정 커밋으로 이동 (스테이징 해제)
$ git reset --mixed <커밋 해시>

# 특정 커밋으로 이동 (변경 사항 삭제, 신중히 사용!)
$ git reset --hard <커밋 해시>

 

 

먼저 git log --oneline 명령어를 실행하여 원하는 커밋의 해시를 확인한 후,

위 명령어를 실행하면 해당 커밋으로 이동할 수 있습니다.

되돌리기 전에 확인해야 할 사항

  • --hard 옵션을 사용하면 변경 사항이 완전히 삭제되므로 주의가 필요합니다.
  • 실수로 되돌린 경우 git reflog 명령어를 사용하여 복구할 수 있습니다.

 

🔚 마무리: Git 작업 되돌리기 완벽 정리 🚀

이제 Git에서 작업을 되돌리는 다양한 방법을 확실히 이해하셨나요?

Git은 강력한 버전 관리 시스템으로, 필요할 때 쉽게 되돌릴 수 있도록 다양한 기능을 제공합니다.

 

✔️ git restore – 작업 트리에서 변경 사항 취소

✔️ git restore --staged – 스테이징된 변경 사항 취소

✔️ git reset HEAD^ – 최신 커밋 되돌리기

✔️ git reset <커밋 해시> – 특정 커밋으로 되돌리기

🚀 Git을 더욱 효과적으로 활용하는 팁

  • 되돌리기 전에는 항상 git statusgit log를 확인하세요.
  • 실수로 되돌린 경우 git reflog를 사용하여 복구할 수 있습니다.
반응형