특정 브랜치에서 작업을 하다가 다른 브랜치로 checkout해야하는데, 해당 작업을 완료하지 않았거나, 커밋하기엔 애매할 때 어떻게 해야할까?
Git에서는 이럴 때 사용할 수 있는 stash가 있다.
우선, 만약에 stash를 사용하지 않고 바로 다른 브랜치로 checkout하면 어떤 일이 발생할까?
이전 브랜치에서 작업했던 내용이 checkout한 브랜치에도 영향을 주게 된다.
stash는 working directory의 변경사항을 감춘다.
따라서 checkout을 하더라도 다른 브랜치에 영향을 주지 않는다.
git stash 사용방법
git add 후 git stash하면 끝! 다른 브랜치 갔다와서 git stash pop
git stash
WIP - working in process
임시 작업 숨기기
git statsh apply
다시 가져오기 (단, 가장 위에 최신 작업을 가져온다.)
git stash list
stash 목록 확인
git stash drop
stash에서 제거
git pop
=> git stash apply; + git stash drop;
git stash list에서 보이는 stash 내역들은 명시적으로 삭제하지 않는 한 계속 살아있다.
예시)
git stash (save)
git reset --hard HEAD - 가장 최신 커밋의 상태 reset
git stash apply - reset했지만 stash를 명시적으로 삭제하지 않았기에 적용된다.
기억해야할 것!
1. git stash는 untracked files들은 적용되지 않는다. 즉, 버전 관리가 되고 있는 녀석들만 stash가 가능하다.
2. drop 혹은 pop을 통한 명시적으로만 stash list에서 삭제가 가능하다.
'Git, GitHub > Git' 카테고리의 다른 글
[Git] 안정적인 배포를 위한 GitFlow 전략 (0) | 2024.02.18 |
---|---|
[Git] Merge vs Rebase (2) | 2024.02.16 |