티스토리 뷰
Stash: (안전한 곳에) 넣어두다[숨기다]
보통 한 번에 하나의 이슈만을 처리하면 좋겠지만, 일을 하다보면 여러개의 일을 처리해야 할때도 있고, 특정 브랜치에서 뭔가를 확인해야 할일 도 생긴다. 이 때, 작업중인 내역을 커밋할 수는 없고, 날리기도 아까울 때 필수적으로 사용하게 되는 명령어가 바로 stash 이다.
기본 사용법
1) 저장(save)
save 뒤에 따옴표로 description을 포함하여 저장한다.
$ git stash save '[Feature] ** 작업중'
2) 목록 보기(list)
$ git stash list
위와 같이 저장한 목록은 list 명령어로 볼수 있다. stash는 스택으로 관리된다(FILO/선입후출).
결과는 아래와 같이 출력된다.
3) 적용하기(apply)
변경 사항은 apply 명령어로 저장한다. 2)번에서 확인한 목록에서 적용할 목록을 적어주면 된다.
// 0번째 stash를 적용하기 위해서는 단순히 apply 만 사용해도 적용된다.
$ git stash apply
// 특정 stash를 적용할 때는 다음과 같이 적용한다.
$ git stash apply stash@{n}
4) 사용한 목록 삭제
- 특정 목록 삭제(drop)
이미 적용했거나, 더 이상 사용하지 않은 stash는 아래 명령어로 삭제한다.
$ git stash drop stash@{n}
- 모든 목록 삭제(clear)
아래 명령어를 사용하면 모든 목록이 삭제된다. 주의해서 사용하자.
$ git stash clear
-u: untracked 파일 저장 (필수)
사실 위에 내용만 가지고 사용한다면 stash는 당신이 원하는 대로 동작하지 않을 가능성이 높다. 왜냐하면 stash는 나도 처음에는 모르고 사용하다가 작성중인 파일을 날려먹은 경험이 있다. (눙물ㅠㅠ)
$ git stash -u
$ git stash --include-untracked
--index: staged 상태까지 저장하기 및 불러오기
-u 옵션을 이용해서 모든 타일을 저장했다면 불러올때는 --index를 이용하여 stage 상태까지 불러오기 할 수 있다.
$ git stash apply --index
그외 명령어들
1) 적용과 동시에 삭제하기.
계속해서 쌓이는 stash들을 일일이 관리하기 귀찮다면 아래 명령어를 이용해서 사용하면서 삭제할 수 있다. 다만, 바로 삭제됨으로 적용할 stash가 무엇인지 정확하게 적는 것이 중요할 것이다.
$ git stash pop
2) 되돌리기
stask를 무자비하게 사용하다 보면 해당 브런치에서 불러오지 말아야 할 stash를 불러오기도 한다. 그런데 이 때, 해당 브랜치에 이미 작업하던 내용이 있다면?? restore를 이용해서 변경 내역을 마냥 지울 수도 없는 일이다. 그 때를 위해 다음의 명령어를 기억해두자.
$ git stash show -p | git apply -R
Reference
https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Stashing%EA%B3%BC-Cleaning
이상 꿀팁인지는 모르겠지만, 다양한 stash 사용법을 정리해보았다.
혹시 잘못된 내용 이나 다른 꿀팁 있다면 댓글로 남겨주세요.!
'Computer Engineering > Common' 카테고리의 다른 글
[IT Lifehack] Bitbucket PR을 Slack에서 알림받기 (0) | 2024.05.09 |
---|---|
[책] Clean Code 북스터디 시작 (0) | 2024.01.27 |
[Git] 이미 커밋된 파일/폴더 Untrack하기 (.vscode 삭제) (0) | 2022.06.25 |
[디자인 패턴] Architectural Pattern(아키텍처 패턴) - MVVM (0) | 2022.06.12 |
[programmers] MySQL - Level 2 문제풀이 (2/2) (0) | 2022.06.09 |