git pull 에러를 해결하기 위해 사용했던 git stash 명령어에 대해서 정리한다.


git stash 란?

  • 내가 branch에서 작업하다가 다른 branch로 옮겨가야할 경우가 생겼을 때 커밋하지 않고 잠시 작업하던것을 보관하고, 다른 branch로 넘어가는 것이다.

  • 작업 도중 커밋을 할 수는 없는 상태지만 브랜치전환을 하거나 커밋변경을 해야할 때 임시적으로 저장할 수 있는 명령어.

  • 커밋되기 이전 작업 중 파일과 git add로 추가된 파일 까지 모두 stash 영역으로 저장되며 수정분량은 제거 된다.

  • git add 명령어로 한번이라도 index 영역에 트래킹 된 파일만 stash영역으로 저장된다.

  • 결론: 하고있던 작업을 잠시 담아두는 역할!



    git stash: 하던 작업을 저장하고 가장 최근 commit상태로 만든다. 기본 명칭 WIP로 저장됨.

    git stash pop 또는 git stash apply: 저장되어 있는 작업 중 가장 최근 stash를 가져온다.



사용 예시

status1

수정 파일인 test.txt와 Record.txt가 있고, 새롭게 추가한 파일인 test2.txt가 있다.


stash1

이 상태에서 git stash를 옵션없이 한다. HEAD가 가장 직전의 commit상태로 갔다.


test2

새로 추가된 test2.txt를 제외하고는 stash영역에 저장되며 수정되거나 추가된 부분은 제거된다. 새롭게 추가한 파일은 git add를 해주어야 한다.


stashlist

git stash list 명령어로 stash 기록을 확인할 수 있다.


stashpop

git stash pop 을 하면 저장되어 있는 작업중 가장 최근 stash를 가져온다.