Appia의 IT세상

[깃, Git] Git stash 다양한 사용법(apply, 다중 stash) 본문

Development/GIT

[깃, Git] Git stash 다양한 사용법(apply, 다중 stash)

Appia 2023. 12. 2. 07:21
반응형

[깃, Git] Git stash 다양한 사용법(apply, 다중 stash)

[깃, Git] Git stash 다양한 사용법(apply, 다중 stash)

 

일단, 앞선 포스팅에서, Git Stash를 이용한 변경사항을 커밋하지 않고 branch를 전환하는 방법에 대해서 이야기를 해봤습니다. 실제, 앞선 포스팅에선 언급한 내용을 가장 많이 사용하나, 그 외에도 다양한 방법들에 대해서 이야기를 해보고자 합니다. 그래서 이번 포스팅에서는 앞선 포스팅에서 언급하지 않은 다양한 git stash 사용방법에 대해서 이야기를 해보고자 합니다. 

 

[깃, Git] Git stash를 이용하여 변경사항 커밋없이 branch 전환하기
 

[깃, Git] Git stash를 이용하여 변경사항 커밋없이 branch 전환하기

[깃, Git] Git stash를 이용하여 변경사항 커밋없이 branch 전환하기 이전 포스팅에서는 git diff를 이용하여, 다양한 조건에서의 차이점을 비교하는 방법에 대해서 이야기르 해봤습니다. 물론, 여러번

appia.tistory.com

 

먼저, git stash의 기본 사용법에 대해서는 위에서 언급을 하였습니다. 이 부분을 제외하고 다른 옵션들을 토대로 사용하는 방법에 대해서 이야기를 드리도록 하겠습니다. 

 

현재 stash된 list 출력하기 

먼저, 현재 git stash가 된 리스트를 출력하는 방법에 대해서 살펴보겠습니다. 다음 명령어를 사용하시면 됩니다. 

$ git stash list

위의 명령어를 입력하면, 현재 git stash로 저장된 기록들이 명시가 됩니다. 

git staash list 결과

 

 

stash에서 pop되지 않고, 변경사항 적용하기(option:apply)

먼저, 이전 포스팅에서 git stash (save) 이후에 git stash pop을 사용할 경우 이전에 저장된 git stash 항목이 하나씩 사라집니다. 하지만, apply의 경우에는 임시 저장된 git stash에 항목이 사라지지 않습니다.

git stash (save)와 git stash pop의 구동

 

위에서 보이는 바와 같은 결과를 나타내는데, git stash apply의 경우에는 git stash 항목들이 사라지지 않습니다. 그러면 다음 예시를 보면서 한번 살펴보겠습니다. 

git stash apply 적용 결과

위에서 보는 바와 같이 git stash apply를 적용하다고 하더라더, git stash에 저장된 항목들에 대해서는 변경이 없습니다. 

 

다중 stash 저장 및 적용

위에서 본 git stash의 리스트를 보시면, 여러 번의 git stash를 한 것을 알 수 있습니다. 이런 경우가 될 수 있겠죠? 

최초에 git stash를 진행후에, 브랜치 변경 한 후 복귀하여 git stash pop 없이 파일을 수정하였거나, 아니면 의도적으로 git stash를 여러개의 임시 저장본을 만드릭 위함이었을 수 있습니다. 실제 git stash 저장은 다음과 같이 변경사항을 만들고, git stash 명령어로 저장을하면 됩니다. 

변경사항 존재 
$ git stash # 변경사항 모두 stash로 
git stash pop없이 변경사항 생성
$ git stash

 

그러면, 여기에서 git stash list를 통해서 출력되는 항목들이 여러개인 것을 알 수 있습니다. 여기에서, 만약 원하시는 git stash을 적용하고자 하면 다음과 같은 명령어를 입력하면 됩니다. 

$ git stash apply stash@{N}
$ git stash pop stash@{N}

 

위와 같은 형태로 적용하시면됩니다. 

 

stash 삭제 

stash를 삭제하는 방법에는 크게 2가지 형태가 있습니다. 하나는 stash를 한개씩 삭제하는 방법과 모든 stash를 삭제하는 방법으로 나누어집니다.  일단, 한가지씩 부분삭제를 하는 방법에 대해서 살펴보겠습니다. 다음의 명령어를 통해서 삭제를 할 수 있습니다. 

$ git stash drop stash@{N} # 부분 삭제

단위 stash 삭제

 

그러면 이번에는 전체 stash를 삭제하는 방법에 대해서 살펴보겠습니다. 다음 명령어를 실행하면 됩니다. 

$ git stash clear

위의 명령어를 입력하여 실행해보겠습니다. 

git stash clear 결과 - stash 전체 삭제

 

위의 결과, git stash가 모두 지워진 것을 알 수 있습니다. 

 

[깃, Git] Git Merge Conflict(머지 충돌) 해결하는 방법

 

[깃, Git] Git Merge Conflict(머지 충돌) 해결하는 방법

[깃, Git] Git Merge Conflict(머지 충돌) 해결하는 방법 이전 포스팅에서, Git Merge commit이 생성되는 경우에 대해서 살펴봤습니다. 물론, 모든 merge의 경우 아무런 문제가 없다면 매우 이상적인 상황일 것

appia.tistory.com

 

이번 포스팅에서는 [깃, Git] Git stash 다양한 사용법(apply, 다중 stash)라는 주제로 살펴봤습니다. 실제, 이 부분에 대해서는 많이 사용되지는 않지만, 그래도 필요할 때 잘 유용해서 사용할 수 있습니다. (실제 이해가 안되는 부분이 있을 수 있습니다. 그런 분들은 그냥 과감히 스킵하시고, git stash / git stash pop만 잘 사용하셔도 전혀 문제가 없습니다.) 물론, 이러한 부분들이 안생기는 것들이 가장 좋겠지만, 여러 사람들이 작업을 하다보면, 이런 일들이 많이 발생합니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

 

반응형
Comments