솜사탕코튼 2024. 8. 25. 22:29

git stash

  • git stash는 Git에서 현재 작업 중인 변경 사항을 임시로 저장하고, 작업 디렉토리를 깨끗한 상태로 만들어 주는 명령어

 

Case 1:

  • 브랜치를 따로 만들지 않고 열심히 작업을 했는데, 그 작업 내용을 임시로 저장하고, 이전 작업을 커밋하려고 하는 경우 (실제 경험)

 

Solution:

  • git stash

  • main branch(타겟 브랜치)로 이동
  • 커밋하기 전 branch를 merge 후 push
  • main branch(타켓 브랜치)에서 새로운 branch(feature branch)를 생성
  • 새로운 branch에 chekout
  • git stash pop

  • 이전에 작업하던 내용이 commit 내역에 추가되어있는 것을 볼 수 있음
  • commit message를 작성하고 push

 

 

 

git stash 원리

  • git stash 명령어를 통해 현재 작업 중인 변경사항을 스택(stack) 형태로 임시 저장
  • git stash 명령을 실행하면 작업 디렉토리가 마지막 커밋 상태로 돌아가, 이후 다른 작업을 할 수 있는 상태로 정리
  • 필요할 때 git stash pop 또는 git stash apply 명령어를 사용해 저장된 변경사항을 다시 작업 디렉토리에 적용할 수 있음
    • git stash pop은 저장된 변경사항을 적용한 후 스택에서 제거
    • git stash apply는 스택에서 제거하지 않고 적용만 함
  • git stash list를 사용해서 저장된 스택들을 확인할 수 있음. 특정 스택을 선택해 복원 가능