dev_story

[Git] git stash - 커밋 중간 저장하기 본문

Git

[Git] git stash - 커밋 중간 저장하기

dev_sihyun 2024. 7. 8. 23:18
반응형

 

Git Stash에 대해 알아보자

Git을 사용하다 보면 작업 도중에 다른 작업을 해야 할 때가 종종 있다.

이런 상황에서 작업 내용을 커밋하지 않고도 안전하게 저장해 둘 수 있는 기능이 바로 git stash이다.

이번 포스트에서는 git stash의 기본 개념, 사용법, 그리고 실전 예제를 통해 어떻게 활용할 수 있는지 다루겠다.

1. Git Stash란?

git stash는 현재 작업 중인 변경 사항을 임시로 저장해 둘 수 있는 Git의 기능이다. (stash: 숨기는 장소)

이를 통해 작업 도중 다른 브랜치로 전환하거나 긴급한 버그 수정을 할 수 있으며, 나중에 다시 원래 작업으로 돌아와 이어서 작업을 할 수 있다.

즉, 현재 작업 내용을 임시 저장소(stash)에 넣어두고, 깨끗한 작업 상태로 돌아갈 수 있게 해준다.

2. Git Stash의 기본 사용법

2.1 Stash 생성

현재 작업 내용을 스태시에 저장하려면 아래 명령어를 사용한다.

git stash  (단순 저장)
or
git stash -m "stash messsage"  (message 설정해서 저장)

이 명령어를 실행하면, 변경 사항이 저장되고 워킹 디렉토리가 깨끗한 상태로 돌아간다.

2.2 Stash 목록 확인

저장된 stash 목록을 확인하려면 다음 명령어를 사용한다.

git stash list

이 명령어를 실행하면, 스태시 목록이 표시된다.

2.3 Stash 적용

저장된 stash를 다시 적용하려면 아래 명령어를 사용한다.

git stash apply

stash를 적용하면, 임시 저장된 변경 사항이 다시 워킹 디렉토리에 반영된다. 특정 스태시를 적용하려면 스태시 번호를 명시할 수 있다.

git stash apply stash@{n}

여기서 n은 stash 목록에서 확인한 stash 번호이다.

2.4 Stash 제거

stash를 적용한 후 제거하려면 다음 명령어를 사용한다.

git stash drop

특정 stash를 제거하려면 스태시 번호를 명시한다.

git stash drop stash@{n}

2.5 가장 최근 Stash 적용 및 즉시 삭제

stash를 적용하고 바로 삭제하려면 아래 명령어를 사용한다.

git stash pop

이 명령어는 git stash applygit stash drop을 한 번에 실행한다. 하지만, 가장 최신 stash가 적용되니 주의하자. (stash@{0}이 적용됨)

3. 실전 예제

3.1 작업 도중 긴급 버그 수정

  1. 기능 개발 중 변경 사항이 있는 상태에서 긴급 버그 수정 요청을 받았다면?
    git stash
  2. 다른 브랜치로 전환하여 버그를 수정한다.
    git checkout hotfix-branch
  3. 버그 수정을 완료하고 커밋한다.
    git add .
    git commit -m "Fix urgent bug"
  4. 원래 작업 브랜치로 돌아간다.
    git checkout feature-branch
  5. 저장해 둔 stash를 다시 적용한다.
    git stash pop

3.2 여러 개의 Stash 관리

  1. 첫 번째 변경 사항을 stash에 저장한다.
    git stash -m "First change"
  2. 두 번째 변경 사항을 스태시에 저장한다.
    git stash -m "Second change"
  3. 스태시 목록을 확인한다.
    git stash list
  4. 첫 번째 스태시를 적용한다.
    git stash apply stash@{1}
  5. 스태시를 적용한 후 제거한다.
    git stash drop stash@{1}
반응형

'Git' 카테고리의 다른 글

[Git] git remote  (0) 2024.03.27
[Git] git prune (remote에 없는 local 브랜치 일괄 삭제하기)  (1) 2024.01.11