-
제대로 알아보는 Git Reset, Revert, Restore 차이GIT 2025. 11. 6. 14:26

그게 나였나봐 나는 git을 제대로 써본지 1년도 안된 햇병아리이다.
회사에서는 코드 버전관리를 전혀 하지 않았었고 서버에 다이렉트로 업로드를 해버려 개발자코드와 충돌이 나는 일도 많았다.
특별하게 클라이언트가 git을 요구해서 써본적이 한두번이라 그땐 그냥 개발자들이 알려주는대로 세팅하고
이 버튼 누르면되고, 코드 올리기전에 한번 pull받으면되고...등등 git에 대해 알고있는건 이게 전부였다
그래서 나는 터미널 명령어보다 GUI로 쓰는게 훨씬 편한 사람이다...!!
오늘 수업에서 많은 명령어들을 배웠는데 내가 평소 몰랐었던 단어(?)들도 보였고
알고있던것도 명령어로 치려니 갑자기 바보된 느낌이 많이 들었다!
특히 초보들은 commit을 잘못하면 되돌리는 방법을 많이 찾게된다(는 내 경험담)
요즘은 GPT같은 애들한테 상황을 말해주면 알잘딱깔센 명령어까지 딱 내놓아 해결할수있지만
다음에 같은문제가 생겨도 스스로 해결하지못하고 또 GPT를 찾게되겠지!
그러니까 공부해!되돌리는 명령어는 크게 3가지가 있다.
1. git reset : 커밋 자체를 되돌리는 명령어
git reset은 말 그대로 커밋 히스토리를 되돌리는 명령어다. 이전 상태로 돌아가고 싶을 때 쓰인다.
git reset --soft HEAD~1 <!-- 커밋만 되돌림 --> git reset --mixed HEAD~1 <!-- 커밋 + 스테이징 취소 --> git reset --hard HEAD~1 <!-- 커밋 + 스테이징 + 코드 전부 되돌림 -->2. git revert : 되돌리되, 기록은 남기는 명령어
git revert는 커밋을 없애지 않고, 되돌리는 새로운 커밋을 추가한다.
git revert HEAD <!-- 기록을 보관하면서 되돌리는 방법 -->이걸 실행하면 되돌린 결과를 담는 새로운 커밋이 생긴다
그래서 협업중일때는 reset보다 revert를 쓰는게 훨씬 안전하다.
3. git restore : 파일 단위로 되돌리는 명령어
git restore는 최근에 추가된 명령어로, 전체 커밋이 아니라 특정 파일만 되돌리고 싶을 때 사용한다.
git restore index.html <!-- 워킹 디렉토리의 파일을 되돌린다 --> git restore --staged index.html <!-- 스테이징된 파일을 되돌린다 -->VS Code Pulgin : Git Graph

혼자 난리부르스 해보는 중 그외 설치하면 좋은 플러그인도 하나 배웠다!
Git 탭에 들어가면 기본적으로 그래프를 제공은 해주지만
Git Graph은 더 상세한 내역과 우클릭하면 오늘 설명한 reset,revert,restore은 물론 Stash 등의 기능까지 손쉽게 설정할수있다마무리
reset, revert, restore은 이름도 비슷해서 헷갈리기 쉬운데
커밋을 없애느냐 / 기록만 남기느냐 / 파일만 되돌리느냐 의 차이로 정리하면 이해가 쉬울듯하다
개인적으로 혼자하는 프로젝트에선 reset,
협업중인 프로젝트에선 revert를 쓰는게 좋을듯하다 👍
참고자료
https://error-note.tistory.com/15?utm_source=chatgpt.com[git] git reset,revert,restore를 통한 수정 전으로 되돌리는 방법(commit 취소, 삭제 등)
안녕하세요. 작업 중 commit 또는 push한 시점으로 되돌아가고 싶은 경우에 사용하는 git 이용 방법을 가져왔습니다. 저의 경우, 설치 후 경로 문제로 꼬이는 문제가 발생하여 2일간 붙잡고 있던 와
error-note.tistory.com
https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph
Git Graph - Visual Studio Marketplace
Extension for Visual Studio Code - View a Git Graph of your repository, and perform Git actions from the graph.
marketplace.visualstudio.com
'GIT' 카테고리의 다른 글
결국 커뮤니케이션 - MARK DOWN & PR 실습 (0) 2025.11.11 히스토리를 디자인하다 - Rebase Interactive (0) 2025.11.10