ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git/GitHub] git stash
    조각조각/Git&GitHub 2024. 4. 11. 20:40
    💬 git stash에 대해 알고는 있었는데, 작업하고 있던 브랜치 내의 모든 파일을 보관해야 한다는 사실은 처음 알게 되어 잊어버리기 전에 기록으로 남겨본다.

     

    🤔 git stash는 언제 쓰는데요?

    열심히 test1 브랜치에서 작업을 하고 있었는데 급하게 test0 브랜치 작업 내역에 대한 수정 요청이 들어왔다. 브랜치를 이동하여 해당 요청을 처리하기 전에 작업하고 있던 내역을 올려야 하는데, 아직 커밋으로 만들기에는 애매한 상황이다. 이때 사용할 수 있는 방법이 stash이다.

     

    📑 사용법

    ⚠️ 주의할 점
    stash는 프로젝트 단위로 관리되기 때문에 모든 브랜치에서 통합적으로 사용이 가능하다. stash 내역이 많아지면 구분이 어렵기 때문에 파일 보관 시 메시지에 작업 내역을 자세히 적어주는 게 좋다.

     

    1) 파일 보관하기 : git stash

    git stash -am "test1 브랜치 XXX 작업 중.."
    • git stash 명령어를 사용하는 경우 .env와 같은 추적되지 않는 파일을 제외하고, 추적되지만 아직 staged 되지 않은 파일만 보관한다. 다시 stash 된 내역을 불러오는 경우 보관 시점 기준으로 파일이 롤백되기 때문에 보관 당시 저장된 파일 기준으로 작업 내역이 복구된다. 추적되지 않는 파일이 중요한 파일이라면, stash 내역을 다시 복구시킬 때 같이 롤백되기를 바랄 것이다. 이때  -a 플래그를 사용하여 함께 보관할 수 있다는 사실을 기억하자.
      • 단, 작업하고 있던 폴더 내에 커밋 내역이 하나도 존재하지 않는 상태라면 -a 플래그 사용 시 폴더 전체가 stash 되어버린다. 

    stash에 올라간 내역

     

    2) 보관된 파일 내역 확인하기 : git stash list

    저장된 stash 파일 내역을 확인하려면 git stash list 명령어를 사용하면 된다. stash 내역은 스택에 차곡차곡 쌓이는 형태이기 때문에 가장 최신 저장 내역이 0번으로 배치된다는 점을 유의하자.

    git stash list

    git list 내역

     

    3) 보관된 파일 복구 : git stash pop 또는 git stash apply [stash 번호]

    # 가장 최신 저장 내역 복구
    git stash pop
    
    # 가장 최신으로 적용하고 싶다면 번호는 제외 가능
    git stash apply 1

    4) 보관된 stash 내역 삭제 : git stash drop [stash 번호]

    # 최신 내역 삭제
    git stash drop
    
    # 특정 번호를 가진 내역 삭제
    git stash drop 1
    
    # 전체 내역 삭제
    git stash clear

     


    참고

    [실시간 강의/패캠] 실무 Git/GitHub - 박영웅 강사님

     

    💬 본 포스팅은 공부 기록용으로 정확하지 않은 정보가 존재할 수 있습니다. 발견하신다면 알려주세요!

Designed by Tistory.