2024. 3. 20. 17:11ㆍGit
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
보통 개발자들은 여러 작업을 동시에 진행하거나, 작업 중에 예기치 않은 변경이 필요할 때가 있습니다. 이런 상황에서는 현재 작업 중인 변경사항을 커밋(commit)하기 전에 보관할 필요가 있습니다. 여기서 git stash가 유용하게 사용됩니다. 이를 알아봅시다.
Stash 활용 예시
개발 중, 갑자기 다른 브랜치로 전환해야 하는 상황이 발생했다고 해봅시다. 이때 현재 작업 중인 변경사항을 임시 저장하고 싶을 것입니다. 이때 stash를 사용하면 됩니다. 왜냐하면 커밋하지 않은 변경사항이 남아있는 상태에서는 브랜치를 전환할 수 없기 때문에 stash 기능으로 잠시 저장하고 나중에 다시 돌아와서 이를 다시 적용할 수 있습니다.
커밋을 하지 않은 이유로는 아직 완료되지 않은 작업이나 실험적인 변경사항이었다면 이를 커밋하지 않고 stash에 일시적으로 보관할 수 있습니다. 이렇게 함으로써 불필요한 커밋을 방지할 수 있습니다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Stash 명령어
메시지를 지정하지 않고 stash를 생성하기
git stash
메시지를 지정하여 stash를 생성하기
git stash save "message"
stash 리스트(목록) 확인하기
git stash list
가장 최근에 저장된 stash 변경사항 diff 보기
git stash show
stash@{0}: WIP on master: 1234abcd Commit message
file1.txt | 2 +-
file2.txt | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
특정 stash(예: stash 번호 2)의 저장된 변경사항 보기
git stash show stash@{2}
변경된 내용을 패치 형식으로 보기
git stash show -p
diff --git a/file1.txt b/file1.txt
index 1234567..abcdefg 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1,4 +1,4 @@
-Old line
+New line
stash에서 가장 최근에 저장된 변경사항을 다시 가져오기
git stash apply
stash에서 가장 최근에 저장된 변경사항을 다시 가져오고 stash를 삭제하기
git stash pop
특정 stash(예: stash 번호 2)를 삭제하기
git stash drop stash@{2}
저장된 모든 stash를 삭제하기
git stash clear
저장된 stash를 새로운 브랜치를 만들어 체크아웃하고 변경사항 적용해 주기
#git checkout -b [newBranchName]
#git stash apply stash@{number}
git stash branch [newBranchName] stash@{number}
참고로 stash는 해당 브랜치에만 임시로 저장됩니다. 다른 브랜치로 이동하면 해당 브랜치에서 저장한 stash 목록을 확인할 수 없습니다.
이렇게 git stash의 다양한 명령어를 활용하여 개발 작업을 보다 효율적으로 관리할 수 있습니다.
'Git' 카테고리의 다른 글
[Git] GitHub에서 Squash Merge로 프로젝트 히스토리 깔끔하게 정리하기 (0) | 2024.07.07 |
---|---|
[Git] 2가지 방법으로 변경사항 가져오기 (feat. git checkout, git cherry-pick) (2) | 2024.03.24 |
[Git] Git 리베이스: 작업 브랜치의 변경 사항을 최신 상태로 유지하는 방법 (0) | 2024.03.19 |
[Git] GitHub에서 Pull Request(PR) 올리는 방법: 초보자를 위한 안내 (1) | 2024.03.18 |
[git] README.md 파일 작성시, Markdown 문법(Syntax) 사용법 (0) | 2023.04.24 |