/ GIT

(git) stash 사용하기


팀원과 함께 프로젝트를 진행하는 도중 이미 팀원이 push를 하게 되면서 내가 변경한 사항 때문에 pull 할 수 없을 경우 stash를 사용하면 간단하게 해결할 수 있다.

git stash란

아직 마무리되지 않은 작업을 스택이라는 임시 공간에 잠시 저장할수 있게 해주는 명령어이다. 현재 하고 있던 작업들을 임시로 저장하여 아무런 변경사항이 없는것처럼 보이게 해준다.


stash 목록 확인하기


$ git stash list



stash 적용하기


$ git stash apply # 가장 최근의 stash한 목록을 가져온다

$ git stash apply {stash 이름}



stash 삭제하기


$ git stash drop # 가장 최근의 stash를 제거한다

$ git stash drop {stash 이름}



적용과 동시에 스택에서 stash 제거하기


$ git stash pop



stash 되돌리기


$ git stash show -p | git apply -R 



develop 변경으로 해당 브랜치의 변경사항을 pull 받아올때 내 로컬에 있는 develop의 변경때문에 pull 되지 않을 경우

# 내 로컬
> git stash
> git pull origin develop
> git stash pop


feature branch에서 위와 같은 명령어로 진행하게 되면 feature에는 변경사항이 적용되지만 실제 develop 브랜치에서는 변경사항을 충돌사항으로 인식하기 때문에 merge해줘야 하는 상황이 온다. 그 다음 다시 develop로 이동해 pull 받아야 하는 2번의 일을 해야 하기 때문에 git flow를 쓰고 있는 상황이라면 develop 브랜치로 이동해 위의 명령어로 적용시켜준다

모든 git 명령어가 그렇듯 최소한 기본적인 동작은 정확히 알고써야 한다고 생각한다. 내가 기본동작을 제대로 모른채 써서 피본적이 한두번이 아니다. stash를 쓰면서도 코드가 날라간 경험을 한 적이 있다.. 허허