[Git] Git Stash 사용하기

2021. 5. 15. 17:07Git

반응형

Git에 대해 아주 유용하게 사용할 수 있는 명령어를 짧게 알아보겠습니다.

$git stash라는 명령어입니다.

 

Git stash

Stash라는 것인데, 사용할 수 있는 상황은 여러분들이 어떤 작업을 특정 브랜치에서 하고 있는 상황입니다. 근데 갑자기 다른 브랜치에서 일을 처리해야하는 상황이 생겼습니다..

 

그렇다면, 작업이 완료되지 않는 상태에서 commit을 하고 넘어가시나요..? 뭔가 유의미한 커밋만 남기고 싶은 욕구가 다들 있잖아요..!!

이 때, 사용할 수 있는 것이 git stash입니다.

 

자 그렇다면 어떻게 사용할 수 있을까요.

우선 여러분들이 아직 commit은 하지 않은 상태에서 몇 개는 staged에 올라가있고 몇 개는 add조차 하지않은 unstaged 상태입니다.

 

이 때, 터미널에 $git stash를 입력합니다.

이렇게 입력하게 되면 이제 저 작업들을 하지 않았던 상태로 돌아가면서 이 변경사항들이 모두 stash라는 저장장소에 임시로 저장됩니다.

이제, 다른 브랜치로 넘어갈 수 있습니다.

 

이제 checkout을 이용해서 다른 브랜치로 넘어가면 됩니다.

근데, 우리는 다시 돌아와서 이 작업을 다시 진행해야합니다. 어떻게 stash 영역에서 꺼내와서 다시 사용할 수 있을까요.

 

일단 $git stash list라는 명령어를 입력합니다.

그러면 밑의 화면과 같이 stash에 있는 모든 작업하고 있던 리스트들을 확인할 수 있습니다.

자 이제 이것들을 적용해야겠죠..?!

$git stash apply stash@{0}을 입력해주면 해당 stash 작업이 현재의 브랜치에 적용됩니다.

근데 다른 브랜치에도 역시 stash를 적용할 수 있는데 만약 충돌하는 곳이 있으면 merge를 할 때처럼 충돌이 나겠죠~

 

웬만하면 원래 작업하던 곳에서 적용을 해주는 것이 좋습니다.

이제 마지막으로 저 apply한 작업이 list에서 삭제되었을까요..?

 

삭제되지 않습니다.. 쌓이기만 하기 때문에, 정리를 하고 싶다면 $git stash drop stash@{0}으로 삭제를 해주면 깔끔하게 정리된 stash 영역을 확인할 수 있습니다 :)

 

어렵지 않죠..!!

명령어들을 정리해보면

// Stash 영역에 저장
$git stash

// Stash 영역으로부터 작업 가져와서 적용
$git stash apply stash@{0}

// Stash 영역 리스트
$git stash list

// Stash 영역 정리
$git stash drop stash@{0}

이렇게 간단한 명령어들로 유용하게 사용할 수 있습니다 ㅎㅎ

 

도움이 되었으면 좋겠습니다 :)

 

반응형

'Git' 카테고리의 다른 글

[Git] Git merge 전략 (merge, rebase merge, squash merge)  (0) 2021.04.11
[GIT] Github-flow 사용하기  (0) 2021.01.27
[GIT] Git-flow 사용하기  (0) 2020.11.09
[GIT] Merge vs Rebase 차이  (8) 2020.09.20