Git에서 Stash 복구

Abdul Jabbar 2023년6월20일
  1. Git의 변경 사항 숨기기
  2. Git에서 숨겨진 변경 사항 보기
  3. Git에서 숨겨진 변경 사항 복구
  4. Git에서 숨겨진 변경 사항 삭제
Git에서 Stash 복구

때때로 Git으로 작업하는 동안 원격 저장소에서 최신 변경 사항을 가져오고 싶은 상황에 직면하고 기존 수정 사항이나 파일과 충돌하면 이러한 파일을 숨김으로 푸시해야 합니다.

Git은 저장소에 커밋하지 않고 수행한 변경 사항의 스냅샷을 저장하는 기능을 제공하며 이 Git 영역을 Stash라고 합니다.

작업 트리나 스테이징 영역과 관련이 없습니다. 변경 사항을 일시적으로 저장하고 작업 트리를 정리하여 새로운 작업을 시작하는 매우 효율적인 기능입니다.

나중에 필요에 따라 변경 사항을 생략하거나 다시 가져온 다음 새 분기 또는 일부 다른 분기에 다시 적용할 수 있습니다.

이 기사에서는 git stash와 stash를 복구할 때 지저분한 Git 상황을 극복하는 방법에 대해 설명합니다. 이 기능은 커밋하고 싶지 않은 분기를 변경했지만 다른 분기로 변경하고 싶을 때 사용합니다.

Git의 변경 사항 숨기기

어떤 목적으로든 변경 사항을 숨김에 저장하려면 다음 명령을 실행합니다.

git stash save "optional message for yourself"

위에서 언급한 이 명령은 변경 사항을 저장하고 작업 디렉토리로 반환합니다. 숨겨진 변경 사항은 해당 리포지토리의 모든 분기에서 사용할 수 있습니다.

메모
숨기려는 변경 사항은 추적된 파일에 있어야 합니다. 새 파일을 개발하고 변경 사항을 숨기면 No local changes to save라는 오류가 발생합니다.

Git에서 숨겨진 변경 사항 보기

숨겨진 변경 사항 목록을 보려면 다음 명령을 실행합니다.

git stash list

앞에서 언급한 대로 이 명령은 stash@{0} 형식으로 저장된 변경 사항 목록을 표시합니다. stash@{0}는 숨김의 이름을 나타내고 숫자를 포함하는 중괄호({ })는 해당 숨김의 인덱스입니다.

숨겨진 변경 사항이 많은 경우 각 세트는 저장된 시퀀스에 따라 다른 인덱스를 갖습니다.

숨김에서 변경한 내용을 잊은 경우 다음 명령을 통해 볼 수 있으며 아래 명령은 숨김의 모든 과거 변경 사항을 보여줍니다.

git stash show stash@{0}

Git에서 숨겨진 변경 사항 복구

숨겨진 버킷에서 숨겨진 변경 사항을 복구하거나 검색하고 향후 작업하려는 현재 분기에 적용하는 두 가지 방법이 있습니다. 두 명령 모두 아래에 하나씩 언급되어 있습니다.

힘내 숨김 적용

아래 언급된 명령을 통해 stash에 복사본을 남겨둘 변경 사항을 적용할 수 있으며, 나중에 어떤 이유로든 사용하고 싶을 때 사용할 수 있습니다.

git stash apply STASH-NAME

하나 이상의 숨김이 있는 경우 지정된 숨김만 얻을 수 있도록 특히 숨김의 이름을 언급할 수 있습니다.

git stash apply

이름을 입력하지 않으면 Git은 마지막으로 푸시된 stash의 상단을 자동으로 적용합니다.

힘내 숨김 팝

아래에 언급된 명령을 통해 변경 사항을 적용할 수도 있지만 이 명령은 stash에서 파일을 제거하고 나중에 사용할 수 없습니다.

git stash pop STASH-NAME

Git에서 숨겨진 변경 사항 삭제

숨겨진 변경 사항을 적용한 후 제거할 때마다 다음 명령을 실행합니다. 그래도 이 명령은 숨김에서 모든 변경 사항을 제거하며 앞으로 더 이상 사용할 수 없습니다.

git stash drop STASH-NAME

전체 숨김을 청소하기 위해 다음 명령을 실행합니다.

git stash clear
작가: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

관련 문장 - Git Stash