[Git] stash : 현재 개발중인 것을 커밋을 생성하지 않고 잠시 다른곳에 저장

2022. 4. 21. 14:06Git

stash 기능의 필요성

예를 들어 개발자가 열심히 [feat/b] 브랜치에서 개발을 수행하고 있는데 급하게 고쳐야 하는 버그가 발생했습니다. 다른 브랜치로 이동하려는데 현재 브랜치에 아직 커밋하지 않은 변경사항 파일이 10개가 존재합니다. 하지만 아직 커밋으로 만들기는 애매한 파일들입니다. 이럴때 이 변경사항을 잠시 다른 곳에 저장했다가 버그를 해결한 후에 다시 불러오는 방법이 스태시(stash, 넣어두다) 기능입니다.

 

1. stash : 커밋하지 않은 변경사항을 잠시 다른 곳에 저장하기

1.1 [feat/b] 브랜치, amend.md 파일과 featb.md 파일을 다음과 같이 수정합니다.

현재 [feat/b] 브랜치에서 amend.md 파일과 featb.md 파일을 작성하고 있다고 가정합니다. 이때 급하게 고쳐야 하는 버그가 발생했다고 합니다. 하지만 다른 브랜치로 체크아웃을 수행했지만 다음과 같이 커밋을 하지 않아 이동하지 못하게 되었습니다.

하지만 현재 작성중인 파일을 커밋으로 올리기에는 애매한 파일들이기 때문에 stash 기능을 사용하기로 합니다.

 

1.2 커밋하지 않은 변경사항 클릭 -> 스태시 클릭 -> 스태시 메시지 작성

작업공간이 깔끔해졌으므로 다른 브랜치로 이동할 수 있습니다.

 

다른 브랜치로 이동하여 버그를 해결하고 다시 [feat/b]로 돌아왔다고 가정합니다.

 

1.3 작성중이던 amend.md 파일 내용과 featb.md 파일 내용을 다시 이어가기 위해서 스태시에 저장되어 있는 것을 불러옵니다.

위 결과를 보면 작성중이던 amend.md 파일과 featb.md 파일이 다시 불러온것을 볼 수 있습니다.

 

References

source code : https://github.com/yonghwankim-dev/git_study
팀 개발을 위한 Git Github 시작하기, 정호영 진유림 저