logo

Git Stash

때로는 분기를 전환하고 싶지만 현재 프로젝트의 불완전한 부분을 작업하고 있는 경우가 있습니다. 당신은 반쯤 완료된 작업을 커밋하고 싶지 않습니다. Git stashing을 사용하면 그렇게 할 수 있습니다. 그만큼 자식 숨김 명령 현재 분기를 커밋하지 않고도 분기를 전환할 수 있습니다.

아래 그림은 저장소와 작업 디렉터리에 대한 Stash의 속성과 역할을 보여줍니다.

Git Stash

일반적으로 stash의 의미는 ' 숨겨진 장소에 물건을 안전하게 보관하세요 .' Git의 의미는 stash에서도 동일합니다. Git은 커밋하지 않고 데이터를 임시로 안전하게 저장합니다.

스태싱은 작업 디렉터리의 지저분한 상태를 가져와 나중에 사용할 수 있도록 임시로 저장합니다. git stash에서는 다양한 옵션을 사용할 수 있습니다. 몇 가지 유용한 옵션은 다음과 같습니다.

    힘내 숨김 힘내 숨김 저장 힘내 숨김 목록 힘내 숨김 적용 힘내 숨김 변경 Git 스태시 팝 힘내 숨김 드롭 힘내 숨김 지우기 힘내 숨김 지점

작업물 보관

실시간 시나리오로 이해해 보겠습니다. 두 개의 서로 다른 브랜치에서 두 개의 파일로 내 프로젝트 GitExample2를 변경했습니다. 나는 지저분한 상태에 있고 아직 어떤 파일도 완전히 편집하지 않았습니다. 그래서 나중에 사용할 수 있도록 임시로 저장하고 싶습니다. 현재 상태로 저장하기 위해 숨길 수 있습니다. Stash를 위해 저장소의 현재 상태를 살펴보겠습니다. 저장소의 현재 상태를 확인하려면 git status 명령을 실행하세요. git status 명령은 다음과 같이 사용됩니다.

int 두 배로

통사론:

 $ git status 

산출:

Git Stash

위 출력에서 ​​추적되지 않은 파일이 두 개 있다는 상태를 확인할 수 있습니다. 디자인.css 그리고 새파일.txt 저장소에서 사용 가능합니다. 임시로 저장하려면 git stash 명령을 사용할 수 있습니다. git stash 명령은 다음과 같이 사용됩니다.

통사론:

 $ git stash 

산출:

Git Stash

주어진 출력에서 ​​작업은 git stash 명령으로 저장됩니다. 저장소의 상태를 확인할 수 있습니다.

Git Stash

보시다시피, 내 작업은 현재 위치에 숨겨져 있습니다. 이제 디렉토리가 정리되었습니다. 이 시점에서 분기 간에 전환하여 작업할 수 있습니다.

Git Stash 저장(메시지와 함께 Stash 저장):

Git에서는 변경 사항을 메시지와 함께 숨길 수 있습니다. 메시지와 함께 변경 사항을 숨기려면 아래 명령을 실행하십시오.

통사론:

 $ git stash save '' 

산출:

Git Stash

위의 숨김은 메시지와 함께 저장됩니다

Git Stash 목록(저장된 Stash 확인)

저장된 숨김을 확인하려면 아래 명령을 실행하십시오.

통사론:

 $ git stash list 

산출:

Git Stash

위의 경우, 하나의 Stash를 만들었고 '로 표시됩니다. stash@{0}: 테스트의 WIP: 0a1a475 CSS 파일 '.

숨김이 두 개 이상인 경우 숨김 ID가 서로 다른 모든 숨김이 각각 표시됩니다. 아래 출력을 고려하십시오.

아이폰의 안드로이드 이모티콘
Git Stash

인덱싱이 포함된 모든 숨김 항목이 다음과 같이 표시됩니다. stash@{0}: stash@{1}: 등등.

Git Stash 적용

git stash 명령을 사용하여 방금 숨긴 변경 사항을 다시 적용할 수 있습니다. 커밋을 적용하려면 git stash 명령을 사용한 다음 적용 옵션을 사용하세요. 다음과 같이 사용됩니다.

통사론:

 $ git stash apply 

산출:

Git Stash

위 출력은 마지막 숨김을 복원합니다. 이제 저장소의 상태를 확인하면 파일에 적용된 변경 사항이 표시됩니다. 아래를 고려해보세요 산출:

Git Stash

위 출력에서 ​​저장소가 stash 이전 상태로 복원된 것을 확인할 수 있습니다. '로 출력이 표시됩니다. 커밋을 위해 준비되지 않은 변경 사항 .'

스태시가 두 개 이상인 경우 'git stash apply' 명령과 스태시 인덱스 ID를 사용하여 특정 커밋을 적용할 수 있습니다. 다음과 같이 사용됩니다.

통사론:

 $ git stash apply 

아래 출력을 고려하십시오.

산출:

Git Stash

숨김을 지정하지 않으면 Git은 가장 최근의 숨김을 가져와서 적용하려고 시도합니다.

Git 스태시 변경 사항

우리는 은닉물과 그 변경 사항을 추적할 수 있습니다. 숨김 작업 전과 숨김 작업 후 파일의 변경 사항을 보려면 아래 명령을 실행하세요.

통사론:

 $ git stash show 

위의 명령은 숨겨진 파일과 해당 파일에 대한 변경 사항을 표시합니다. 아래 출력을 고려하십시오.

산출:

Git Stash

위 출력은 숨겨진 두 개의 파일이 있고 해당 파일에서 두 개의 삽입이 수행되었음을 보여줍니다.

파일에 어떤 변경 사항이 적용되었는지 정확하게 추적할 수 있습니다. 파일의 변경된 내용을 표시하려면 아래 명령을 수행하십시오.

통사론:

 $ git stash show -p 

여기서 -p는 부분 숨김을 나타냅니다. 주어진 명령은 편집된 파일과 콘텐츠를 표시합니다. 아래 출력을 고려하십시오.

산출:

Git Stash

위 출력에는 변경된 내용이 포함된 파일 이름이 표시됩니다. git diff 명령과 동일하게 작동합니다. 그만큼 자식 비교 명령은 정확한 출력도 표시합니다.

Git Stash Pop(숨겨진 변경사항 다시 적용)

Git에서는 사용자가 git stash pop 명령을 사용하여 이전 커밋을 다시 적용할 수 있습니다. 팝핑 옵션은 스태시에서 변경 사항을 제거하고 작업 파일에 적용합니다.

git stash pop 명령은 git stash apply와 매우 유사합니다. 이 두 명령의 주요 차이점은 stash가 적용된 후 스택에서 stash를 삭제하는 stash pop 명령입니다.

통사론:

 $ git stash pop 

위 명령은 이전 커밋을 저장소에 다시 적용합니다. 아래 출력을 고려하십시오.

산출:

Git Stash

Git Stash Drop(Unstash)

그만큼 자식 숨김 드롭 명령은 대기열에서 숨김을 삭제하는 데 사용됩니다. 일반적으로 가장 최근의 숨김을 삭제합니다. 한번 적용하면 실행 취소가 어렵기 때문에 stash drop 명령을 사용하기 전에 주의해야 합니다.

이를 되돌리는 유일한 방법은 숨김 항목을 삭제한 후 터미널을 닫지 않는 것입니다. stash drop 명령은 다음과 같이 사용됩니다.

통사론:

텍스트 래퍼 CSS
 $ git stash drop 

산출:

Git Stash

위 출력에서 ​​가장 최근의 숨김 (스태시@{0}) 주어진 세 개의 은닉처에서 삭제되었습니다. stash list 명령은 대기열에서 사용 가능한 모든 숨김을 나열합니다.

대기열에서 특정 숨김을 삭제할 수도 있습니다. 사용 가능한 숨김에서 특정 숨김을 삭제하려면 stash drop 명령에 숨김 ID를 전달합니다. 다음과 같이 처리됩니다.

통사론:

 $ git stash drop 

대기열에 사용 가능한 스태시가 두 개 있고 가장 최근 스태시를 삭제하지 않고 이전 스태시를 삭제하고 싶다고 가정해 보겠습니다. 그러면 다음과 같이 작동됩니다.

 $ git stash drop stash@{1} 

아래 출력을 고려하십시오.

Git Stash

위 출력에서 ​​커밋은 숨김@{1} 대기열에서 삭제되었습니다.

쿠미트 같은 사이트

힘내 스태시 지우기

그만큼 git stash 클리어 명령을 사용하면 사용 가능한 모든 숨김 파일을 한 번에 삭제할 수 있습니다. 사용 가능한 모든 숨김을 삭제하려면 아래 명령을 수행하십시오.

통사론:

 $ git stash clear 

저장소에 존재하는 모든 숨김을 삭제합니다.

산출:

Git Stash

위 출력에서는 모든 숨김이 삭제됩니다. 저장소에 사용 가능한 숨김이 없으므로 git stash list 명령은 비어 있습니다.

Git Stash 브랜치

특정 브랜치에 일부 작업을 저장하고 해당 브랜치에서 계속 작업하는 경우. 그러면 병합 중에 충돌이 발생할 수 있습니다. 따라서 별도의 지점에 작업을 숨겨 두는 것이 좋습니다.

git stash Branch 명령을 사용하면 사용자가 충돌을 피하기 위해 별도의 분기에 작업을 숨길 수 있습니다. 이 분기의 구문은 다음과 같습니다.

통사론:

 $ git stash branch 

위 명령은 새 브랜치를 생성하고 해당 브랜치에 숨겨진 작업을 전송합니다. 아래 출력을 고려하십시오.

산출:

Git Stash

위 출력에서 ​​숨겨진 작업은 새로 생성된 브랜치 테스트로 전송됩니다. 마스터 브랜치의 병합 충돌을 방지합니다.