본문 바로가기

Git+Github

Git stash (commit하지 않고 하던 작업을 잠시 보관하는 방법)

반응형

Git stash

stash는 git 명령어다.

stash(넣어두다) 뜻 그대로 내가 branch에서 작업하다가 다른 branch로 옮겨가야 할 경우가 생겼을 때 commit하지 않고 잠시 작업하던 것을 보관하고 다른 branch로 넘어가는 것이다.

"commit하고 나중에 다시 해당 브랜치로 왔을 때 이어서 작업하면 되는거 아니야?"

라고 생각할 수 있다.

하지만 그럴 수 없는 상황이 있다.

예를 들어 실수로 master브랜치에서 코딩을 한 경우나 뭔가 새로운 것을 개발하고 있는데 다른 브랜치에 문제가 생겨서 급히 수정해야하는 경우다.

실제로 commit을 잘하는 것은 하나의 기능에 대해 변경했을 때 commit을 해주는 것이 좋다.

commit 메세지에도 정성을 다해 간결하면서도 명확한 최적의 메세지를 작성하는 것처럼

commit 하나하나가 중요하다. 그렇기 때문에 commit대신 stash기능은 활용하면 좋다.


stash는 다시 한번 말하지만 하고 있던 작업을 잠시 담아두는 역할을 한다.

따라서 명령어는 크게 두 가지만 기억하면 된다.

git stash(=git stash save) : 하던 작업을 저장하고 가장 최근 commit상태로 만든다.

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


이 외에 명령어 옵션들

git stash list : stash 목록을 봄 stash@[숫자]형식으로 보여지며 0번이 가장 최근 1,2,3... 이런식으로 밀림

git stash drop[stash@[숫자]] : stash를 따로 지정하지 않으면 최신의 stash삭제

* git stash pop은 git stash apply + git stash drop을 같이 한 것과 같은 효과임.

  즉, git stash pop은 한번 불러오면 stash 목록에 저장한 시점이 삭제되어있고 git stash apply는 해당 stash를 불러와도 여전히 list에 남아 있음.


◈ 우리는 commit메세지에 "임시 commit ~" 이런식의 메세지는 남기지 맙시다. 현업에서 그러면 지적받을 수 있어요.."

반응형