Git - stash
- 버전관리
- 2021. 5. 6. 18:46
Git - stash
참조
Stash 란?
- Stash 란 아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어입니다.
- 이를 통해 아직 완료하지 않은 일을 commit 하지 않고 나중에 다시 꺼내와 마무리할 수 있습니다.
- Stahs는 워킹 디렉토리에 unstaged 파일들을 백업하고, 워킹 디렉토리를 깨끗한 상태, 즉 HEAD의 상태로 만드는 기능입니다.
Stash 써야 하는 상황
- 몇시간 동안 특정 작업을 열심히 진행하고 있었습니다.
- 그런데 갑자기 이상한 곳에 치명적인 버그가 발생해서, 여태 하던 작업을 중단하고 버그를 먼저 처리해야 하는 상황이 발생했습니다.
- 이런 경우 이전에 했던 작업을 다시 이전으로 돌리고 버그를 잡기에는 너무 리소스가 큰 상황이 발생 합니다.
- 이럴때 유용하게 사용하는 기능이 Stash 기능입니다.
Stash 사용 예제
1. 로컬에서 작업하고 commit 하기 전 상태
- 로컬에서 특정 파일의 내용을 작업을 합니다.
- git 에서는 파일의 변화가 있어서 Working Copy 영역으로 해당 파일을 보냅니다.
- 여기서 변경된 파일은 Staging 영역에 올라오지는 않았습니다.
2. Stash 메뉴 선택
- Stash 메뉴 선택합니다.
3. Stash 내용 입력
- Stash 내용 입력합니다.
4. UnCommited changed 내용 없어짐
- Stash를 진행하게 되면 처음에 내용 수정 후 Commit을 해야한다는 UnCommited changed 내용이 없어진걸 확인하실 수 있습니다.
- 즉, 1번에서 작업한 내용은 어딘가 저장이 된 상태로 보관을 하고 있고 commit 상태는 가장 마지막의 버전 상태로 돌아온 상태입니다.
5. Stash 보관 장소
- SourceTree 사이드 카테고리에서 Stash 메뉴를 선택합니다.
- st 라고 하여, 처음에 생성한 Stash 가 생성되어 있는것을 확인하실 수 있습니다.
- On master 뜻 : 현재 st 라는 스태시는 master 브랜치로부터 생성된 Stash 라는 것을 의미합니다.
6. 다시 작업 진행
- Stash 를 저장한 상태에서 다시 로컬의 index.html 파일 내용을 수정합니다.
7. 긴급한 작업이 완료된 후, Stash 영역에 있던 내용 다시 가져옴
- 긴급한 작업이 완료가 되었다면, 이전에 Stash 영역에 저장했던 내용을 다시 가지고 옵니다.
- Apply Stash 메뉴를 선택하시면 됩니다.
8. WorkingCopy 영역에 Stash 저장한 내용 다시 적용
- Apply Stash 속성을 선택하면 Stash로 저장했던 작업 내용들이 다시 WorkingCopy 영역으로 나타납니다.
Stash 참고
- 만약 index, Staging 영역의 파일과 Workingcopy 영역의 파일이 둘다 있는 상태에서 Stash 진행하게 되면, 둘다 결합된 상태의 내용으로 합쳐져서 Stash 내용에 저장됩니다.
- 그리고 index, Staging 영역의 파일과 Workingcopy 영역의 파일 내용이 모두 Stash 로 왔다면, 그 내용 모두 해당 로컬 파일에서는 모두 사라진 상태로 표시됩니다.
- Stash 를 사용해도 충돌 상황이 일어날 수 있다는걸 항상 상기하시길 바랍니다.
728x90
'버전관리' 카테고리의 다른 글
[Git] 2장 깃과 소스트리 설치 및 환경 설정 (0) | 2022.06.18 |
---|---|
[Git] 1장 깃과 버전관리 (0) | 2022.06.18 |
마크다운 (markdown) 작성 하는 방법 (0) | 2021.05.05 |
Git - Pull & Push (0) | 2021.05.05 |
Git - 원격 저장소 업로드 하기 (0) | 2021.05.05 |
이 글을 공유하기