본문 바로가기
Programming/Git

git stash 사용법

by 코딩여걸 2023. 7. 5.
728x90

여러 명이서 같은 git Repositorie에서 작업을 한다.

내가 git에 최종적으로 push를 하고 다음 작업을 하려고 branch를 생성했다.

내가 작업하는 중간에 동료가 git push를 해서 나는 최신 소스코드 한 단계 아래에 있다.

이때 git pull을 하면 충돌이 날 것이다.

 

git stash를 해서 잠깐 다른데 저장을 한 다음에 pull을 받고 다시 branch를 생성한 후 다시 저장한 것을 불러오면 된다.


🤔 git stash 란?

- 새로운 stash를 스택에 만들어하던 작업을 임시 저장

네이버 영어사전


터미널에서 git stash -h 로 사용법(도움말)을 볼 수 있다. (-h는 help의 약자이다.)

git stash -h : git stash를 어떻게 쓰는지 설명해 주는 help 명령어

git stash list
git stash show
git stash drop
git stash pop
git stash apply
git stash branch <branchname>
git stash
git stash save
git stash clear
git stash create
git stash store

 

✏️ git stash list

현재 저장소에 임시 저장된 전체 목록을 확인할 수 있다.

stash@{0}은 임시 변경사항의 임시 이름이다.

 

✏️ git stash (git stash save)

git stash는 git stash save의 축약형이다.

git stash : 현재 작업 파일 stash에 저장

git stash save NAME : 특정 이름으로 stash 저장

-m을 붙이지 않으면 현재 상태를 의미하는 메시지가 자동으로 붙여진다.

 

다시 git stash list를 해서 보면

예전에 지우지 않은 것까지 두 개가 있다.

stash@{1}에 있는 것은 -m을 사용해서 메시지를 지정해 줬다.

stash@{0}은 메시지를 지정하지 않아서 자동으로 메시지가 붙여졌다.

만약 stash@{1}처럼 메시지를 지정하고 싶으면 -m과 같이 써주면 된다.

> git stash -m '영문화 임시저장'

 

✏️ git stash show

임시 변경사항의 내용을 확인할 때 사용한다.

확인하고 싶은 임시 변경사항의 이름을 git stash show 뒤에 적어주면 된다.

> git stash show stash@{0}

 

✏️ git stash pop

apply와 drop 명령어의 조합이다.

즉, 꺼내오는 동시에 삭제한다.

git stash pop을 인자 없이 실행하면 인덱스가 stash@{0}인 변경사항(가장 최근에 stash 된 내용)에 대해 두 가지 작업을 수행한다.

1. git stash@{0}을 꺼내온다. (apply)
2. git stash@{0}을 삭제한다. (drop)

git stash pop == git stash apply + git stash drop

 

✏️ git stash apply

git stash 한 것을 다시 불러오려 할 때 사용한다.

git stash apply를 하면 꺼내오긴 하는데 스택에 변경사항은 남아있다.

git stash apply : 가장 최근 stash 가져오기

git stash apply stash@{n} : n번 stash 가져오기

 

✏️ git stash drop

git stash drop을 실행하면 stash@{0}이 삭제되고, stash@{1}이 stash{0}으로 변경된다.

git stash drop : 가장 최근 stash 지우기 (stash@{0}이 가장 최근 stash -> 순서 : stash@{0}, stash@{1}, stash@{2}, etc.)

git stash drop stash@{n} : n번 stash 지우기

 

✏️ git stash clear

모든 임시 변경사항(stash)을 삭제

stash 모두 지우기

모든 임시 변경사항을 한 번에 삭제할 수 있어서 git stash list를 해도 아무것도 출력되지 않는다.

 

✏️ git stash branch

임시저장된 변경사항을 반영한 브랜치 새로 만들기

새로운 브랜치를 만들고 stash 된 내용을 pop 한다.

pop으로 동작하기 때문에 임시 저장된 내용을 꺼낸(apply) 다음 삭제(drop)한다.

> git stash branch new-branch

이렇게 git stash에 대해 알아보았다!

728x90

댓글