Study/ETC

[Git] stash 명령어로 작업중인 변경사항을 숨겨보자

dongkeonkim 2023. 3. 27. 15:07
반응형

입사한지 얼마 되지 않은 신입사원은 여유롭게 자바 코드를 작성하고 있었다.

그때 선임님이 조용히 옆으로 다가와 속삭였다.

"OO 사원, 전에 작업헀던 UI에 이러이러한 버튼 하나만 추가해 줄래요?"

"넵. 푸시하고 말씀드리겠습니다."

신입사원이 말했다. 그리고 소스트리를 켜서 브랜치를 변경하려는데...

 

띠용?!

 

여기서 확인을 누르는 순간, 작업 중인 브랜치에서 다른 브랜치로 전환하면, 작업 중인 브랜치의 변경 내용이 모두 사라지고 선택한 브랜치의 최신 상태로 업데이트됩니다.

 

그래서 신입사원은 생각했다.

 

'음... 이 백엔드 코드는 프론트 작업 브랜치로 가면 안 돼. 그렇다고 커밋하자니 아직 중구난방 코드인데...?'

 

라며 머리를 쥐어뜯지 마시고 stash를 사용해 보도록 하죠.

 

Git의 stash 는 작업 중인 변경 사항을 스택에 저장하는 기능입니다.

이 기능은 변경 사항을 커밋하지 않고도 다른 브랜치로 전환하거나, 이전 커밋 상태로 되돌리는 등의 작업을 할 수 있게 해줍니다.

또한 저장할 때 변경 사항을 커밋하는 것처럼 메시지를 작성할 수도 있죠!

 

터미널에 git stash 를 작성하면 아직 커밋하지 않은 변경사항들을 저장할 수 있습니다.

저는 메세지를 작성해서 어떤 작업물인지를 명확히 하고자 save 명령어를 더하겠습니다.

 

 

그리고 목록을 보면?

 

stash@{0} 이것이 stash_id 입니다

 

이처럼 방금 저장한 메세지가 보이죠? 이제 원하는 브랜치로 넘어갈 수 있어요!

 

그리고 나중에 다시 해당 코드를 적용해야 한다면.

git stash apply stash@{숫자}

 

삭제해야 한다면

git stash drop stash@{숫자}

 

모든 stash list를 삭제하려면

git stash clear

 

이렇게 하시면 됩니다요.

반응형