Skip to content
GwiyeomGo Tech Blog
About GwiyeomGo

Git stash 를 사용해서 작업을 잠시 저장하자

GIT, 20223 min read

stash 는 언제 사용했었지?

  1. a 브렌치에서 작업하다 커밋 안하고 b 브렌치 작업을 해야 할때
  2. a 에서 작업하는 중,master 에 머지된거 pull 받아야함 => stash 하고 pull 받고 stash pop 함

git stash 로 보관되는 상태는?

Stash는 Modified 이면서 Tracked 상태인 파일과 Staging Area에 있는 파일들을 보관해두는 장소

git add . 로 변경된 내용 상태를 변경하고 git stash 사용해야함

stash 명령어

git stash git stash list git stash pop

stash pop ? apply ?....

stash list 를 어떻게 삭제?

git stash drop

여러개 stash 중 원하는 것 만 적용

git stash apply {index} or stash@{1} 처럼 index 지정해서 적용 git stash apply stash@{index}

origin branch 에 stash 하고 push 한다면?

stash 가 남았던 경험 (20220612)

최초 프로젝트의 경우 fork 를 떠서 origin 으로 머지하는 방식으로 했다 (나눔플랫폼) 기관플랫폼은 리더 시니어가 origin 에서 작업하고 올리는 거로 결정했다 => 다른 사람의 branch 에 접근 가능하여 변경할 수 있는 위험이 있는데도 그렇게 결정하셨다. => 정확한 상황은 못봤지만 배포시 fork해서 작업을 따서 머지합칠때 문제가 있었는데... 기억이...

그런데 지난주 기관플랫폼을 하면서 이상한 점을 발견했다

fork 하지 않고 작업하니 origin 에서 바로 브렌치를 만들고 작업하다 stash 도 한다.. 그런데 stash를 drop 하거나 pop하지 않고 origin/dev 으로 push 하니

나중에 origin/dev 를 pull 받았을때 stash 했던 데이터가 남아있었다 => 이건 실험좀 해봐야겠다.

origin 저장소에서 branch 를 생성해 stash 해보자

origin 저장소에 branch를 생성한다면 다른 사람의 접근이 가능하다. ex) git stash 를 했을 때 다른사람의 stash 도 볼 수 있다?

  • Stash는 로컬 저장소(로컬에만 존재)
  • stash는 로컬 변경 사항을 임시로 저장하는 도구이므로 stash된 내용은 push할 때 remote 저장소로 전달되지 않음
  • 다른 사람이 remote origin에서 pull 받더라도 당신의 stash는 다른 사람에게 공유되지 않음
  • stash 내용은 commit되지 않으면 remote origin에 포함되지 않음.
© 2024 by GwiyeomGo Tech Blog. All rights reserved.