Git 실수 되돌리기 완벽 정리: 명령어 4가지로 즉시 복구하는 방법

개발 작업을 하다 보면 잘못된 커밋을 남기거나 중요한 파일을 실수로 덮어쓰는 순간이 생각보다 자주 찾아옵니다. 그럴 때마다 당황하기 쉽지만, Git에는 이런 실수를 침착하게 되돌릴 수 있는 기능이 충분히 마련되어 있습니다. 오늘은 실무에서 꼭 필요한 되돌리기 명령어 4가지를 차근차근 살펴보겠습니다.

Git은 모든 변경 이력을 기록하는 버전 관리 도구이므로, 이력을 활용하면 대부분의 실수를 되돌릴 수 있습니다. 다만 명령어마다 동작 방식과 위험도가 다르기 때문에, 상황에 맞는 명령어를 고르는 것이 무엇보다 중요합니다. 이 글에서는 작업 내역을 되돌리는 방법과 사라진 데이터를 살리는 방법으로 나누어 정리하겠습니다.

Git 실수 되돌리기 완벽 정리: 명령어 4가지로 즉시 복구하는 방법

Git 실수 되돌리기 완벽 정리: 명령어 4가지로 즉시 복구하는 방법

⚡

30초 핵심 요약 (Key Takeaways)

  • 커밋 이력을 되돌릴 때는 공유 여부에 따라 git reset과 git revert를 구분해 사용하는 것이 핵심입니다.
  • git reset –hard는 작업 내용을 영구적으로 삭제할 수 있으므로 실행 전 반드시 현재 상태를 확인해야 합니다.
  • 네 가지 명령어를 익히면 실수로 인한 작업 손실을 줄이고, 필요한 시점의 코드를 빠르게 되살릴 수 있습니다.

작업 내역 되돌리기: 커밋과 변경 사항을 취소하는 명령어

git reset: 커밋 이력을 과거 시점으로 되돌리기

git reset은 브랜치가 가리키는 커밋 위치를 과거 시점으로 옮기는 명령어입니다. 잘못 올린 커밋을 없던 일로 만들고 싶을 때 가장 직관적으로 쓸 수 있습니다. git reset은 커밋 이력을 과거로 되돌리는 강력한 명령어이지만, 공유된 브랜치에서는 사용을 피해야 합니다.

–soft, –mixed, –hard 옵션에 따라 변경 사항을 어디까지 남길지가 달라집니다. 특히 –hard는 작업 중인 내용까지 지워지므로 신중하게 사용해야 합니다.

예를 들어 마지막 커밋만 취소하고 파일 내용은 남기고 싶다면 git reset –soft HEAD~1 명령어를 입력하면 됩니다.

💡 핵심 가이드: 📌 3초 핵심 팁: –hard 옵션은 되돌린 내용을 복구하기 어려우므로, 실행 전 git status로 변경 사항을 먼저 확인하세요.
✔ 꼭 점검해야 할 핵심 체크리스트:

  • ✔ 되돌리기 전 git log –oneline으로 대상 커밋을 확인했는가?
  • ✔ 원격 저장소에 이미 push한 커밋이 아닌지 점검했는가?
git reset: 커밋 이력을 과거 시점으로 되돌리기

git reset: 커밋 이력을 과거 시점으로 되돌리기

git revert: 공유된 커밋을 안전하게 취소하기

git revert는 기존 커밋의 변경 내용을 거꾸로 적용한 새로운 커밋을 만드는 명령어입니다. 이력 자체는 그대로 남으므로 팀원과 공유한 브랜치에서도 안전하게 사용할 수 있습니다. 공유된 커밋을 취소해야 한다면 git revert가 가장 안전한 선택입니다.

예를 들어 배포된 코드에 문제가 있는 커밋이 있다면, 해당 커밋을 revert하여 문제를 빠르게 해소할 수 있습니다. 이전 기록이 보존되어 누가 무엇을 바꿨는지 추적하기도 쉽습니다.

사용법은 git revert 커밋해시 한 줄이면 충분하며, 여러 커밋을 한꺼번에 취소할 때도 같은 방식으로 처리할 수 있습니다.

💡 핵심 가이드: 📌 3초 핵심 팁: revert는 기록을 지우지 않고 반대 작업을 추가하므로, 팀 협업 환경에서 가장 권장되는 방식입니다.
✔ 꼭 점검해야 할 핵심 체크리스트:

  • ✔ 취소할 커밋의 해시값을 정확히 복사했는가?
  • ✔ revert 후 충돌이 발생하면 해당 파일을 수정하고 커밋을 완료했는가?
git revert: 공유된 커밋을 안전하게 취소하기

git revert: 공유된 커밋을 안전하게 취소하기

사라진 데이터 살리기: 복구 명령어 활용법

git reflog: 사라진 커밋 위치를 찾아 복원하기

git reset이나 브랜치 삭제로 커밋이 사라졌다고 해서 데이터가 바로 완전히 없어지는 것은 아닙니다. Git은 HEAD가 이동한 기록을 reflog에 일정 기간 보관합니다. git reflog는 실수로 사라진 커밋을 찾아내는 가장 확실한 복구 도구입니다.

git reflog 명령어를 입력하면 최근 HEAD의 이동 내역이 시간순으로 표시되므로, 사라진 커밋의 해시값을 쉽게 찾을 수 있습니다.

찾은 해시값을 git reset –hard 해시값 형태로 지정하면 해당 시점의 작업 상태를 다시 살릴 수 있습니다.

💡 핵심 가이드: 📌 3초 핵심 팁: reflog 기록은 기본적으로 일정 기간 후 정리되므로, 실수를 발견하면 가능한 한 빨리 복구하세요.
✔ 꼭 점검해야 할 핵심 체크리스트:

  • ✔ git reflog로 복구하려는 시점의 해시값을 확인했는가?
  • ✔ 복구 후 git log로 원하는 커밋이 정상적으로 돌아왔는지 점검했는가?

git restore: 수정한 파일을 마지막 상태로 복구하기

git restore는 아직 커밋하지 않은 파일의 수정 내용을 마지막 커밋 상태로 되돌리는 명령어입니다. 잘못 편집한 코드를 원래대로 돌리고 싶을 때 가장 간편하게 쓸 수 있습니다. git restore는 작업 중인 파일을 마지막 커밋 상태로 빠르게 되돌리는 가장 간편한 방법입니다.

git restore 파일명 한 줄이면 해당 파일의 작업 중 변경 사항이 사라지고 마지막 커밋 시점의 내용으로 돌아갑니다. 여러 파일을 한꺼번에 복구하려면 점(.)을 사용해 현재 폴더 전체를 지정할 수 있습니다.

다만 되돌린 변경 내용은 복구할 수 없으므로, 필요한 부분이 있다면 먼저 백업해 두는 습관을 들이는 것이 좋습니다.

💡 핵심 가이드: 📌 3초 핵심 팁: 실행 전 git diff로 변경 내용을 한 번 확인하면 필요한 수정 사항을 실수로 잃는 일을 막을 수 있습니다.
✔ 꼭 점검해야 할 핵심 체크리스트:

  • ✔ 되돌릴 파일 이름이 정확한지 확인했는가?
  • ✔ 보존이 필요한 변경 사항은 별도로 백업했는가?

📊 한눈에 보는 핵심 총정리

💡
Git 실수 되돌리기 완벽 정리: 명령어 4가지로 즉시 복구하는 방법

구분 핵심 요약 실천 팁 및 기대 효과
git reset: 커밋 이력을 과거 시점으로 되돌리기 브랜치의 커밋 위치를 과거 시점으로 옮기는 명령어입니다. 로컬에서만 사용하고, –hard 실행 전 git status로 상태를 확인하세요.
git revert: 공유된 커밋을 안전하게 취소하기 기존 변경을 거꾸로 적용한 새 커밋을 만들어 이력을 보존합니다. 팀과 공유한 브랜치에서 기록을 지우지 않고 안전하게 문제를 해결할 수 있습니다.
git reflog: 사라진 커밋 위치를 찾아 복원하기 HEAD 이동 기록을 보여주어 사라진 커밋의 해시값을 찾게 합니다. 실수를 발견하면 빠르게 reflog를 확인하여 작업 손실을 막으세요.
git restore: 수정한 파일을 마지막 상태로 복구하기 커밋되지 않은 파일 수정 내용을 마지막 커밋 상태로 되돌립니다. 실행 전 git diff로 확인하고, 필요한 변경은 미리 백업해 두세요.

※ 본 표는 핵심 내용을 한눈에 비교할 수 있도록 실시간 요약 정리된 데이터입니다.

Q. git reset과 git revert 중 어떤 명령어를 써야 하나요?

아직 원격 저장소에 올리지 않은 개인 작업이라면 git reset을 사용해도 괜찮습니다. 이미 팀원과 공유한 커밋을 취소해야 한다면 이력을 보존하는 git revert가 더 안전한 선택입니다.

Q. git reset –hard로 지운 파일도 다시 복구할 수 있나요?

커밋되어 있던 내용이라면 git reflog로 이전 해시값을 찾아 복구할 수 있습니다. 하지만 한 번도 커밋하지 않은 변경 사항은 Git이 기록하지 않으므로 복구가 어려울 수 있습니다.

Q. git restore와 git checkout은 무엇이 다른가요?

git restore는 파일 복구에 특화된 명령어로 의도를 명확하게 드러내는 장점이 있습니다. 최근 Git 버전에서는 checkout의 여러 기능이 restore와 switch로 나뉘었으므로, 파일 복구에는 restore를 사용하는 것을 권장합니다.

Git 실수는 대부분 명령어 몇 줄로 해결할 수 있으며, 상황에 맞는 도구를 고르는 것이 핵심입니다. 오늘 소개한 네 가지 명령어를 실제 저장소에서 한 번씩 연습해 두면, 실수 앞에서도 당황하지 않고 차분하게 대응할 수 있을 것입니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤