본문 바로가기
Program Development Tips/Git

[Git] Reset 완벽 가이드: 실수도 되돌릴 수 있는 Git의 강력한 기능

by Maccrey Coding 2024. 8. 14.
반응형

Git의 실수를 되돌리는 강력한 기능, Git Reset

개발 과정에서 실수는 피할 수 없는 부분입니다. 코드 수정 중에 잘못된 커밋을 하거나, 스테이징한 파일을 취소하고 싶을 때가 있죠.

이럴 때 유용한 명령어가 바로 git reset입니다.

git reset은 특정 시점으로 돌아가 프로젝트 상태를 되돌릴 수 있는 강력한 도구입니다.

하지만 이 명령어를 사용할 때는 주의해야 할 점도 많기 때문에, 오늘은 git reset의 사용법과 주의사항을 함께 알아보도록 하겠습니다.

Git Reset의 세 가지 주요 옵션과 사용법

git reset은 Git의 역사에서 특정 시점으로 이동할 때 사용하는 명령어입니다.

기본적으로 세 가지 주요 옵션이 있습니다: --soft, --mixed, --hard. 각각의 옵션은 리셋하는 범위가 다르기 때문에, 상황에 맞게 선택하여 사용해야 합니다.

 

1. git reset --soft: 커밋만 되돌리기

이 옵션은 가장 안전하게 사용할 수 있는 리셋 방식입니다.

--soft 옵션은 커밋만 되돌리고, 스테이징 영역과 작업 디렉토리는 유지됩니다.

즉, 특정 커밋을 취소하되, 파일의 수정 상태는 그대로 남겨두는 것입니다.

git reset --soft HEAD~1

이 명령어는 가장 최근의 커밋(HEAD)을 취소하지만, 코드 수정 사항은 그대로 유지됩니다. 이후에 다시 커밋할 수 있습니다.

 

2. git reset --mixed: 스테이징 영역도 초기화

git reset --mixed는 기본 옵션으로, 커밋뿐만 아니라 스테이징 영역도 초기화합니다.

즉, 파일은 여전히 수정된 상태로 남아있지만, git add로 스테이징된 내용은 취소됩니다.

이 옵션은 커밋과 스테이징 영역을 모두 초기화하고 싶을 때 유용합니다.

git reset --mixed HEAD~1

이 명령어는 가장 최근의 커밋을 취소하고, 스테이징된 파일도 모두 해제하지만 작업 디렉토리의 수정사항은 그대로 남습니다.

 

3. git reset --hard: 모든 것을 초기화

git reset --hard는 가장 강력한 옵션으로, 커밋, 스테이징 영역, 그리고 작업 디렉토리의 변경 사항을 모두 되돌립니다.

말 그대로 Git 상태를 완전히 초기화하는 것이죠. 이 명령어를 사용할 때는 주의가 필요합니다.

작업 디렉토리에서 변경된 내용이 모두 삭제되기 때문에, 복구가 어려울 수 있습니다.

git reset --hard HEAD~1

이 명령어는 가장 최근의 커밋을 취소하고, 스테이징된 내용과 작업 디렉토리의 변경 사항을 모두 되돌립니다.

완전한 초기화가 필요할 때 사용하는 옵션입니다.

Git Reset, 신중하게 사용하라

git reset은 Git에서 실수를 되돌릴 수 있는 강력한 명령어입니다.

하지만 그만큼 주의해서 사용해야 합니다. 특히 --hard 옵션은 작업 내용을 모두 삭제하기 때문에, 작업 중이던 파일이 사라질 수 있습니다.

따라서 중요한 작업을 할 때는 먼저 커밋을 하고, 필요하다면 git reset 명령어를 신중하게 사용하세요.

이러한 기능을 잘 활용하면 Git에서의 실수도 쉽게 복구할 수 있고, 프로젝트를 안전하게 관리할 수 있을 것입니다.

당신을 위한 3줄 요약

  1. git reset --soft는 커밋만 되돌리고 스테이징과 작업 내용은 유지합니다.
  2. git reset --mixed는 커밋과 스테이징 영역을 되돌리고 작업 내용은 유지합니다.
  3. git reset --hard는 모든 것을 초기화하므로 주의해서 사용하세요.

3 line summary for you

  1. git reset --soft resets commits but keeps staging and working directory intact.
  2. git reset --mixed resets commits and staging, but leaves the working directory unchanged.
  3. git reset --hard resets everything, so use it cautiously.

공감과 댓글은 저에게 큰 힘이 됩니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

반응형