Git

[Git] Git을 다루는 명령어 정리(2/2)

모리스🙂 2025. 4. 12. 23:43

안녕하세요. 모리스입니다.😀

이번 포스트에서는 저번 노트에 이어 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