안녕하세요. 모리스입니다.😀
이번 포스트에서는 저번 노트에 이어 Git의 명령어에 대해서 알아볼게요.
저번 포스트에서는 branch의 생성 및 삭제와 다른 브랜치로의 checkout, pull, commit, push에 대해서 알아봤는데요.
이번에는 많이 쓰이지는 않지만 알아두면 유용하게 사용할 만한 stash, revert, reset, rebase에 대해서 작성해 볼게요.
📌 git stash
작업 중인 내용을 임시로 저장하고, 작업 디렉토리를 깨끗하게 초기화할 수 있어요.
브랜치를 변경하거나 잠시 다른 작업을 해야 할 때 유용해요.
✅ stash 저장
$ git stash
✅ 저장한 stash 목록 보기
$ git stash list
✅ 가장 최근 stash 복원
$ git stash apply
✅ 특정 stash 복원
$ git stash apply stash@{2}
✅ stash 복원 + 삭제
$ git stash pop
✅ stash 삭제
$ git stash drop stash@{0}
📌 git revert
revert는 특정 커밋의 변경 사항을 되돌리는 "새로운 커밋"을 생성해요.
기존의 커밋 기록은 유지하면서 변경 내용을 되돌릴 때 사용해요.
✅ 특정 커밋 되돌리기
$ git revert <커밋 해시>
✅ 여러 커밋 revert
$ git revert HEAD~3..HEAD
HEAD~3..HEAD는 최근 3개의 커밋을 의미해요.
📌 git reset
reset은 커밋 자체를 삭제하거나 staging 영역을 초기화하는 등,
히스토리를 지우는 동작이기 때문에 신중하게 사용해야 해요.
✅ staging 영역에서만 제거 (soft)
$ git reset --soft HEAD~1
✅ staging + 작업 디렉토리 그대로 (mixed, 기본값)
$ git reset HEAD~1
✅ 커밋, staging, 작업 내용 전부 제거 (hard)
$ git reset --hard HEAD~1
⚠️ --hard는 진짜 복구 불가일 수 있으니 꼭 주의하세요!
📌 git rebase
rebase는 브랜치의 기반을 바꿔주는 기능이에요.
브랜치 병합 시 깔끔한 커밋 히스토리를 유지할 수 있어서 자주 사용돼요.
✅ 브랜치를 다른 브랜치 위로 재배치
$ git checkout feature
$ git rebase main
feature 브랜치를 main 브랜치 위에 올리는 방식이에요.
마치 “내 커밋을 최신 main 브랜치 위에서 다시 한번 쌓는” 개념이에요.
✅ rebase 도중 충돌 발생 시
충돌 파일 수정 후:
$ git add <충돌 해결한 파일>
$ git rebase --continue
✅ rebase 취소
$ git rebase --abort
📝 마무리하며
이 네 가지 명령어는 Git의 강력한 기능이지만, 잘못 쓰면 큰일 날 수도 있는 녀석들이에요.
특히 reset --hard나 rebase는 팀 작업에서 신중하게 써야 해요.
직관적인 merge보다 히스토리를 깔끔하게 유지하고 싶을 때 rebase를 사용해 보세요.
잘 못된 부분이 있다면 언제든 댓글로 혼내주세요!!
오늘도 긴 글 읽어주셔서 감사합니다.☺️
'Git' 카테고리의 다른 글
[Git] Git을 다루는 기본 명령어 정리(1/2) (0) | 2025.04.12 |
---|