본문 바로가기
git (협업 툴) 사용법 정리

Git: stash list의 각 stash 이름 바꾸기 (rename)

by 번데기 개발자 2022. 2. 27.
반응형

git에서 stash는 정말 좋은 옵션입니다.

 

stash를 통해 우리는 기존 로컬 변경사항을 잠시 저장해 두고 서버에서 최신 commit을 pull을 받거나 다른 브랜치로 이동하기 전에 local상태를 깔끔하게 정리 한 뒤에 브랜드를 이동할 수 있습니다.

 

이전에 stash에 관련된 포스팅을 하였는데요, stash 사용방법은 아래 링크를 통해 들어가시면 잘 정리되어 있으니 참고 부탁드립니다.

 

[git - stash 명령어에 대해 알아보자!]

 

오늘 알아볼 내용은 기존의 Stash의 이름을 바꾸는 방법입니다.

 

 

Stash로 이름 주기

기본적으로 Stash를 사용하면 아래 처럼 현재 브랜치의 이름과 마지막 커밋 이름으로 Stash 이름을 지정하게 됩니다.

기본 Stash 사용하기

이름을 지정하고 싶을때 보통 Save명령어를 통해 원하는 이름을 줄 수도 있습니다.

 

Save로 이름 주기

이후 git stash list로 내용을 살펴보면 아래와 같습니다.

 

git stash list 명령어 결과

 

여기서 기존에 Stash에 지정한 이름을 바꾸는 방법을 한번 살펴보겠습니다.

 

Stash로 이름 바꾸기 (설명)

Stash의 이름을 바꾸는 방법은 사실 git 명령어에는 존재하지 않습니다.

 

이에 대해 구글링을 하던중에 아래 Stackover flow에서 해답을 얻을 수 있었습니다.

 

[Stackoverflow: Stash를 rename하는 방법이 있나요?]

 

위 Stackoverflow를 참고하여 살펴보니 git config를 통해 커스텀 git 명령어를 shell script로 삽입하는 방법으로 Stash의 이름을 재설정할 수 있다는 것을 알게 되었습니다.

 

1. git stash-name에 대한 커스텀 명령어를 지정

 

git config --global alias.stash-rename '!_() { rev=$(git rev-parse $1) && git stash drop $1 || exit 1 ; git stash store -m "$2" $rev; }; _'

 

위 커멘드를 입력하면 git stash-rename이라는 명령어를 git 상에서 사용할 수 있게 됩니다.

 

 

2. stash-rename으로 Stash 이름 바꾸기

 

git stash-rename stash@{[바꿀 Stash 번호]} [바꿀 Stash name]

 

위와 같은 형식으로 Stash의 이름을 바꿀수 있습니다.

 

 

Stash로 이름 바꾸기 (실습)

 

그러면 실제로 Stash의 이름을 한번 바꿔보겠습니다.

 

stash-rename 명령어 커맨드 입력

먼저, stash-rename 명령어를 사용하기 위해 커멘드를 입력합니다.

 

바꿀 stash 정하기

 

git stash list를 입력해보면 위와같은 stash 목록들을 확인할 수 있는데요, 여기서 1번 stash의 이름을 한번 바꿔보겠습니다.

 

rename으로 이름 변경

명령어를 사용하게 되면 1번 Stash가 drop 되면서 rename으로 지정한 Stash 가 삽입되는데요, Stash는 기본적으로 Stack의 구조를 가지고 있기 때문에 하나씩 Stash 번호가 밀리게 됩니다. 

 

따라서 0번을 바꾸면 번호가 밀리지 않지만 1번을 바꾸면 번호가 하나씩 밀리게 됩니다. (중요한 내용은 아닙니다. ㅎ)

 

git stash list 로 바뀐 내용 확인

git stash list를 통해 확인해보면 위와같이 이름이 바뀐 Stash가 목록에 삽입된 것을 확인할 수 있습니다.

 

 

마무리

이상으로 git stash의 이름을 바꾸는 방법에 대한 설명을 마치겠습니다.

 

저는 개인적으로 Stash에 대한 명령어들을 많이 사용하기 때문에 궁금증이 생겨서 한번 찾아봤는데 역시 찾아보면 같은 고민을 하는 사람들이 있고 방법도 있는 것 같습니다.

 

앞으로도 git에 대한 내용은 종종 업로드할 예정입니다. 

 

감사합니다.!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형