Git & GitHub 강좌/6. 고급 기능

고급 기능 : Stash

_Blue_Sky_ 2024. 10. 6. 10:53
728x90
728x90

Git Stash: 작업 중인 변경 사항을 잠시 숨기고 복원하는 기술

Git Stash란 무엇일까요?

Git Stash는 현재 작업 중인 변경 사항을 임시로 저장소에 숨겨두고, 나중에 다시 복원할 수 있도록 해주는 강력한 기능입니다. 마치 잠시 작업을 중단하고, 다른 작업을 시작하기 위해 현재 작업 내용을 서랍에 넣어두는 것과 비슷합니다. 이 기능은 다음과 같은 상황에서 매우 유용하게 활용될 수 있습니다.

  • 다른 브랜치로 전환해야 할 때: 현재 작업 중인 내용이 아직 완료되지 않았지만, 긴급하게 다른 브랜치로 이동하여 작업해야 할 경우 Stash를 통해 안전하게 작업 내용을 보존하고 브랜치를 전환할 수 있습니다.
  • 오류 수정이 필요할 때: 개발 중 오류가 발생하여 긴급하게 수정해야 할 때, 현재 작업 내용을 Stash에 저장하고 오류를 수정한 후 다시 작업 내용을 복원할 수 있습니다.
  • 새로운 기능을 추가하기 전에: 새로운 기능을 추가하기 전에 현재 작업 내용을 Stash에 저장하여, 새로운 기능 개발 중에 발생할 수 있는 문제로부터 안전하게 보호할 수 있습니다.

Stash의 작동 원리

Stash는 변경 사항을 임시 저장소에 스택 형태로 쌓아둡니다. 따라서 여러 번 Stash를 사용할 경우, 스택에 여러 개의 저장된 변경 사항이 쌓이게 됩니다. Stash된 변경 사항은 언제든지 복원하거나 삭제할 수 있으며, 스택에 저장된 변경 사항 목록을 확인할 수도 있습니다.

728x90

Stash 사용법

  • Stash 저장: git stash save "메시지" 명령을 사용하여 현재 변경 사항을 Stash에 저장합니다. 메시지를 입력하면 나중에 어떤 변경 사항이 저장되었는지 쉽게 구분할 수 있습니다.
  • Stash 목록 확인: git stash list 명령을 사용하여 현재 Stash에 저장된 변경 사항 목록을 확인합니다.
  • Stash 복원: git stash apply 명령을 사용하여 가장 최근에 저장된 변경 사항을 복원합니다. 특정 Stash를 복원하려면 git stash apply stash@{1}과 같이 Stash ID를 지정하여 사용합니다.
  • Stash 삭제: git stash drop 명령을 사용하여 가장 최근에 저장된 변경 사항을 삭제합니다. 특정 Stash를 삭제하려면 git stash drop stash@{1}과 같이 Stash ID를 지정하여 사용합니다.
  • 모든 Stash 삭제: git stash clear 명령을 사용하여 모든 Stash를 삭제합니다.

Stash 활용 시 주의사항

  • Stash는 임시 저장소이므로, 중요한 변경 사항은 반드시 커밋을 통해 영구적으로 저장해야 합니다.
  • Stash된 변경 사항은 작업 디렉토리에 남아 있지 않기 때문에, Stash를 복원하기 전에 작업 디렉토리를 깨끗하게 정리해야 할 수 있습니다.
  • Stash는 복잡한 작업 흐름을 만들 수 있으므로, 신중하게 사용해야 합니다.

Stash 활용 예시

  1. 새로운 기능 개발 중 버그 발생:
    • git stash save "new feature": 새로운 기능 개발 중인 변경 사항을 Stash에 저장합니다.
    • 버그 수정 작업 진행
    • git stash apply: Stash된 변경 사항을 복원하여 다시 새로운 기능 개발을 이어나갑니다.
  2. 다른 사람의 코드 리뷰 받기:
    • git stash save "before review": 코드 리뷰를 받기 전에 변경 사항을 Stash에 저장합니다.
    • 코드 리뷰 후 수정 사항 반영
    • git stash apply: Stash된 변경 사항을 복원하여 이전 작업 상태로 돌아갑니다.
  3. 실험적인 기능 테스트:
    • git stash save "experiment": 실험적인 기능을 추가하기 전에 변경 사항을 Stash에 저장합니다.
    • 실험적인 기능 추가 및 테스트
    • 만약 실험적인 기능이 실패할 경우, git stash pop으로 Stash된 변경 사항을 복원하여 이전 상태로 되돌릴 수 있습니다.

결론

Git Stash는 개발 과정에서 발생할 수 있는 다양한 상황에 유용하게 활용될 수 있는 강력한 기능입니다. Stash를 효과적으로 활용하면 개발 생산성을 향상시키고, 실수로 인한 데이터 손실을 방지할 수 있습니다.

 

728x90
728x90

'Git & GitHub 강좌 > 6. 고급 기능' 카테고리의 다른 글

고급 기능 : Git Hook  (0) 2024.10.06
고급 기능 : Submodule  (0) 2024.10.06
고급 기능 : Tag  (0) 2024.10.06