ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git] Stash 개념과 사용 방법 - Commit 할 수는 없는데 브랜치 전환이 필요할 때!
    Programming/Git 2023. 4. 23. 21:38
    반응형

    [들어가기 전에]

    프로젝트를 하다보면 종종 아직 작업한 부분이 Commit을 할 수는 없는 상태인데
    브랜치 변경을 해서 다른 브랜치에서 작업이 급하게 필요할 때 현재 작업한 부분을 어떻게 해야할지..?애매한 상황이 종종 발생하곤 했었다!

    그럴 때 파일의 변경 사항들을 임시적으로 저장할 수 있는 것이 Git Stash!

    이번에 강의를 들으면서 새롭게 알게 되었다. 역시 안되는건 없다,,

    [Git Stash 개념]

    : 아직 완성되지 않은 작업을 스택에 임시 저장할 수 있도록 하는 깃 명령어
    - stash는 워킹 디렉토리에서 수정한 파일들만 저장(아래 2가지 종류의 파일)
    1) Modified & Tracked 상태의 파일 

    2) Staging Area에 있는 파일(Staged 상태의 파일)

    [사용 방법]

    1. 하던 작업 stash에 임시 저장

    # 새로운 stash 만들기
    $ git stash push -m "message" 
    
    # stash를 만들지만 현재 있는 애들 staging area에 남겨 놓기 (원래 stash 하면 사라짐)
    $ git stash --keep-index
    
    # untracked 파일도 포함하여 stash에 옮기기
    git stash -u

    stash에 작업중인 파일들을 저장하고 나서 새로운 작업을 위해 다른 브랜치로 변경 가능

    2. stash 목록 확인

    # 모든 stash 목록 조회
    $ git stash list

    3. stash 적용하기 (했던 작업 가져오기)

    # 가장 최근의 stash를 가져와 적용
    $ git stash apply
    
    # stash 해쉬 값을 가져와 적용
    $ git stash apply hash
    
    # stage한 상태까지 모두 원복하려면 --index 옵션 붙여줘야 함
    $ git stash apply --index
    
    # stash를 적용한 후 해당 stash를 목록에서 바로 삭제
    $ git stash pop

    4. stash 삭제하기

    # 가장 최근의 stash 제거
    $ git stash drop
    
    # 해시값에 해당하는 stash 제거
    $ git stash drop hash
    
    # 전체 stash 삭제
    $ git stash clear
    반응형

    댓글

Designed by Tistory.