Git Stash
마지막 업데이트
git stash는 커밋하지 않은 변경 사항을 보관하고 작업 트리를 깨끗한 상태로 되돌려, 절반쯤 완료된 작업을 커밋하지 않고도 브랜치를 전환하거나 pull할 수 있게 해줍니다. 변경 사항은 스택에 쌓이며, 나중에 git stash pop(적용 후 제거) 또는 git stash apply(적용 후 유지)로 다시 적용할 수 있습니다.
터미널 플레이그라운드에서 이것들을 사용해 보세요 - 브라우저 안의 실제 셸이며, 설치할 것이 없습니다.
구문
| Command | What it does |
|---|---|
git stash | 추적되는 변경 사항을 보관하고 작업 트리를 정리 |
git stash -u | 추적되지 않은 파일도 stash |
git stash push -m "msg" | 설명 메시지와 함께 stash |
git stash push <file> | 특정 파일만 stash |
git stash list | 모든 stash 목록 보기 |
git stash pop | 최신 stash를 다시 적용하고 제거 |
git stash apply | 최신 stash를 다시 적용하고 유지 |
git stash drop | 최신 stash 삭제 |
git stash clear | 모든 stash 삭제 |
pop vs apply
| Behavior | git stash pop | git stash apply |
|---|---|---|
| 변경 사항을 다시 적용 | 예 | 예 |
| 이후 stash를 제거 | 예 | 아니요 |
| stash 재사용에 적합 | 아니요 | 예 |
Git stash 자주 묻는 질문
git stash는 무엇을 하나요?
커밋하지 않은 변경 사항을 스택에 저장하고 작업 트리를 마지막 커밋으로 재설정하여 깨끗한 상태를 제공합니다. 변경 사항은 사라지지 않습니다 - 보관되어 나중에
git stash pop 또는 git stash apply로 다시 적용할 수 있습니다. 커밋할 준비는 안 되었지만 브랜치를 전환해야 할 때 유용합니다.git stash pop과 git stash apply의 차이는 무엇인가요?
둘 다 가장 최근 stash를 작업 트리에 다시 적용합니다.
git stash pop은 그 후 해당 stash를 스택에서 제거하는 반면, git stash apply는 스택에 남겨 두어 다른 곳에서 다시 적용할 수 있게 합니다. 일회성 복원에는 pop을, stash를 재사용하려면 apply를 사용하세요.git stash는 추적되지 않은 파일을 포함하나요?
기본적으로는 포함하지 않습니다 - 일반
git stash는 추적되는(수정된) 파일만 보관합니다. 추적되지 않은 파일을 포함하려면 -u(git stash -u)를, 무시된 파일까지 포함하려면 -a를 추가하세요. 이 플래그들이 없으면 git add하지 않은 새 파일은 작업 트리에 남습니다.특정 stash는 어떻게 적용하나요?
git stash list를 실행하면 stash@{0}, stash@{1}처럼 번호가 매겨져 표시되며, 그 후 git stash apply stash@{1}(또는 pop)로 특정 stash를 다시 적용합니다. 각 stash는 생성될 때의 브랜치와 메시지도 표시하므로 서로 구별할 수 있습니다.이것을 온라인에서 연습할 수 있나요?
네. 터미널 플레이그라운드를 열어 브라우저 안의 실제 셸에서
git stash를 실행할 수 있습니다 - 설치할 것이 없습니다. Coddy의 무료 인터랙티브 Git 강좌에서도 진행 중인 작업을 관리하는 방법을 단계별로 다룹니다.