Git stash 를 사용해서 작업을 잠시 저장하자
stash 는 언제 사용했었지?
- a 브렌치에서 작업하다 커밋 안하고 b 브렌치 작업을 해야 할때
- 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에 포함되지 않음.