컴굥일지

[git] git stash : commit 말고 중간에 저장하는 법 본문

Tip & 오류 해결/Tip 모음

[git] git stash : commit 말고 중간에 저장하는 법

gyong 2023. 4. 22. 00:06
반응형

git stash는 변경사항을 임시로 저장할 수 있게 하는 git 명령어이다.

여러 가지 일을 병행하게 될 때, 브랜치 여러 개를 동시에 만든 상태에서 서로 왔다 갔다 할 일이 몇 번 있었다. 이때마다 git commit을 하기에는 아직 완성하지 못했거나, 커밋을 하기엔 너무 사소한 경우가 많았다. 물론 git commit 후에 git reset을 하는 방법도 있지만, 이건 너무 번거로우니 패스

그래서 이번 기회에 git stash를 사용 방법을 알아보았다.


git stash

가장 기본적인 명령어이다. 현재 변경사항을 임시로 저장할 수 있다. (저장 후 브랜치를 바꾸어도 문제가 없으며, 다른 브랜치에서도 저장 내역을 불러올 수 있다.)
단, stash는 기본적으로 Modified이면서 Tracked 상태인 파일과 Staging Area에 있는 파일들을 보관해 두는 장소다. (이 부분을 꼭 주의하자! 난 이걸 모르고 git stash 했다가 파일을 날렸다.)

# save는 생략이 가능하다
git stash
git stash save

# 저장하면서 메세지를 남기고 싶은 경우 -m 옵션을 추가하면 된다.
git stash -m "여기에 메세지를 남기자"

# 아직 git에서 tracking하지 않는 파일을 포함하여 임시저장 하고 싶은 경우 -u 옵션을 추가하면 된다.
git stash -u

git stash list 

git stash로 임시 저장한 내역들의 목록을 볼 수 있는 명령어이다.
최신에 저장할수록 뒤에 붙은 번호가 작다. (stash@{0}이 가장 최신임)

git list

git stash apply

git stash로 임시 저장한 내역들을 불러와, 현재 브랜치에 적용하는 명령어이다.
브랜치에 적용되고 나서도, 임시 저장 목록에서 사라지지 않는다.

# 따로 지정하지 않으면 가장 최신의 내용이 불러와 적용된다. 이후 git stash list 조회 시 목록에 여전히 남아있다.
git stash apply

# 특정 저장 내역을 지정할 수도 있다.
git stash apply stash@{2}

git stash pop

git stash로 임시 저장한 내역들을 불러와, 현재 브랜치에 적용하는 명령어이다.
git apply와 비슷하지만, 임시 저장한 내역을 적용하면, 이후 임시 저장 목록에서 지워진다.

# 따로 지정하지 않으면 가장 최신의 내용이 불러와 적용된다. 이후 git stash list 조회 시 목록에서 사라져있다.
git stash pop

# 특정 저장 내역을 지정할 수도 있다.
git stash pop stash@{2}

git stash drop

git stash로 임시 저장한 내역을 버리는 명령어이다.

# 따로 지정하지 않으면 가장 최신의 내용을 목록에서 삭제한다.
git stash drop

# 특정 저장 내역을 지정하여 삭제할 수도 있다.
git stash drop stash@{2}

git stash clear

git stash로 임시 저장한 내역들을 모두 버리는 명령어이다.

# 임시 저장 내역을 모두 삭제한다.
git stash clear
반응형
Comments