본문 바로가기
git (협업 툴) 사용법 정리

git - stash 명령어에 대해 알아보자!

by 번데기 개발자 2018. 6. 26.
반응형


git Stash란?


다른 브랜치로 checkout을 해야 하는데 아직 현재 브랜치에서 작업이 끝나지 않은 경우 커밋이 애매해 지게 됩니다.

이런 경우에는 stash를 이용하면 작업중이던 파일을 임시로 저장해두고 현재 브랜치의 상태를 마지막 커밋의 상태로 초기화 할 수 있습니다.

그 이후 다른 브랜치로 이동한 뒤 작업을 끝낸 후에 작업중이던 브랜치로 복귀한 뒤 이전에 작업하던 내용을 복원 할 수 있습니다.

이 기능을 Stash라고 합니다. 해당 기능에 대해 알아보겠습니다.!





git Stash의 기능




  • stash : 감추다 숨겨두다
  • branch를 이용하여 작업을 하다보면, branch 작업이 완료되지 않은 상태에서 다른 branch로 checkout을 해야 하는 상황이 발생합니다.
  • 이럴 때 아직 작업중인 파일을 commit을 하기도 곤란하고, commit하지 않으면 checkout이 어려운 상황이 발생합니다.
  • 이런 경우에는 stash를 사용하여 작업중인 파일을 숨겨 둘 수 있습니다.





예시 1 : 문제상황









예시 2 : git stash 활용

  • 아직 파일 수정이 끝나지 않아서 commit 하기 곤란하고, 다른 branch로 checkout을 하기도 곤란한 상황을 처리할 때 git stash를 사용합니다.
  • git stash명령은 최소한 버전관리가 되고 있는 파일에 대해서만 수행이 가능합니다. ( 즉 git add를 통해 트래킹 중인 파일)
  • WIP(working in process)





예시 3 : git stash apply 활용



  • git stash를 통해서 숨겼던 수정중 파일을 원상태로 복구하는 방법




  • git reset -hard를 통해서 가장 최신 commit 상태로 working space 상태를 변경합니다.
    ( Commit 하지 않은 수정중인 파일 내용을 삭제)
  • git stash apply 를 통해서 수정 내용을 복구할 수 있습니다.
  • stash list에 나오는 리스트는 명시적으로 삭제하지 않는 이상 항상 살아있습니다.
  • git stash drop을 통해 최신 stash 삭제가 가능합니다.





참고 :









반응형