프로젝트를 진행하다 보면 작업 중인 코드가 불완전하거나 현재 상태를 유지한 채로 다른 작업을 해야 할 때가 있습니다.
이럴 때 작업 내용을 임시로 저장해두는 기능이 유용하게 사용됩니다. Git에서는 stash라는 기능을 제공하여 작업 중인 변경 사항을 안전하게 보관하고, 나중에 다시 적용할 수 있게 해줍니다.
이 블로그 포스트에서는 Git의 stash 기능을 활용하는 방법을 자세히 설명하겠습니다.
1. Git Stash란?
Git의 stash 기능은 현재 작업 중인 변경 사항을 임시로 저장해 두는 기능입니다.
이 기능을 사용하면 현재 브랜치에서 작업 중인 변경 사항을 저장하고, 다른 브랜치로 전환하거나 급한 버그를 수정할 수 있습니다.
작업이 완료되면 저장해두었던 내용을 다시 불러와 작업을 이어갈 수 있습니다.
주요 기능
- 현재 작업 내용 저장: 작업 중인 변경 사항을 안전하게 저장
- 작업 내용 복구: 저장해 둔 내용을 다시 복구하여 작업 재개
- 여러 저장 항목 관리: 여러 개의 스태시 항목을 관리할 수 있음
2. 기본적인 stash 사용법
2.1 현재 작업 내용 임시 저장하기
현재 브랜치에서 작업 중인 변경 사항을 임시로 저장하려면 git stash 명령어를 사용합니다.
이 명령어는 현재의 작업 디렉토리와 인덱스 상태를 스태시에 저장하고, 작업 디렉토리를 깨끗한 상태로 되돌립니다.(최신 커밋으로 되돌아감)
git stash
명령어 설명
- git stash: 현재 작업 중인 모든 변경 사항을 스태시에 저장합니다.
2.2 저장된 작업 내용 보기
저장된 스태시 목록을 보려면 git stash list 명령어를 사용합니다. 이 명령어는 저장된 스태시의 목록을 보여줍니다.
git stash list
출력 예시
stash@{0}: WIP on main: 1234567 Commit message
stash@{1}: WIP on feature-branch: 89abcdef Another commit message
2.3 저장된 작업 내용 적용하기
저장해 두었던 스태시를 다시 적용하려면 git stash apply 명령어를 사용합니다. 기본적으로 가장 최근의 스태시 항목이 적용됩니다.
git stash apply
명령어 설명:
- git stash apply: 가장 최근의 스태시 항목을 현재 브랜치에 적용합니다.
특정 스태시 항목을 적용하려면 스태시의 인덱스를 명시합니다.
git stash apply stash@{0}
2.4 스태시 항목 삭제하기
스태시 항목을 삭제하려면 git stash drop 명령어를 사용합니다. 기본적으로 가장 최근의 스태시 항목이 삭제됩니다.
git stash drop
특정 스태시 항목을 삭제하려면 스태시의 인덱스를 명시합니다.
git stash drop stash@{0}
2.4 스태시 항목 가지고 오면서 동시에 제거하기
git stash pop
작업 내용 불러오면서(git stash apply) 동시에 스택에서 제거도 해주는 커맨드 입니다.
git stash pop [작업 내용의 아이디]
2.5 스태시 항목 모두 삭제하기
저장된 모든 스태시 항목을 삭제하려면 git stash clear 명령어를 사용합니다.
git stash clear
3. stash 활용 팁
3.1 스태시 메시지 추가
git stash 명령어에 메시지를 추가하여 저장된 작업 내용을 설명할 수 있습니다. 이는 작업의 내용을 나중에 이해하는 데 도움이 됩니다.
git stash save "Work in progress on feature X"
3.2 스태시와 브랜치 관리
브랜치 전환 전 현재 작업 내용을 임시로 저장하고, 다른 브랜치로 전환한 후 작업을 계속할 수 있습니다. 이 때, 스태시를 활용하여 작업 내용을 안전하게 유지할 수 있습니다.
3.3 스태시와 변경 내용 관리
스태시를 활용하여 일시적인 변경 사항을 관리하고, 이후 변경 사항을 적용하거나 버리기 전에 스태시 목록을 확인하여 필요한 항목을 선택적으로 적용할 수 있습니다.
Git의 stash 기능은 현재 작업 중인 변경 사항을 임시로 저장하고, 다른 작업을 수행할 때 유용한 도구입니다.
스태시를 활용하면 작업 중인 내용을 안전하게 보관하고, 나중에 작업을 재개할 수 있습니다.
이 기능을 잘 활용하면 작업의 흐름을 방해하지 않고, 유연하게 여러 작업을 관리할 수 있습니다.
구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
'Program Development Tips > Git' 카테고리의 다른 글
[Git] 여러 커밋을 하나의 커밋으로 만들기: Git의 reset --soft 활용법 (0) | 2024.09.03 |
---|---|
[Git] 필요한 커밋만 가져오는 Git Cherry-Pick 사용법 (0) | 2024.09.03 |
[Git] 깔끔한 커밋 히스토리를 원할 땐 git rebase 대신 git merge (0) | 2024.09.03 |
[Git] Sourcetree: Git과 Mercurial을 위한 강력한 GUI 클라이언트 (2) | 2024.09.03 |
[Git] 커밋 히스토리를 보는 다양한 방법: Git에서 이력을 효율적으로 탐색하는 방법 (0) | 2024.09.03 |