Git 복원 지점과 수동 stash
각 블록은 다른 경우이며 하나의 실행 스크립트가 아닙니다. 저장소에 맞는 경우를 선택하고 브랜치 이름, 경로와 VERIFIED_COMMIT을 바꾸세요. 중단 명령은 해당 작업이 진행 중일 때만 사용하며 두 대안을 모두 실행하지 마세요.
핵심 답변
FluxGit 복원 지점은 지원되는 기록 작업을 복구할 상태를 기록합니다. 수동 stash는 로컬 편집을 나중에 쓰도록 저장하는 별도 과정입니다.
예시와 전제 조건
G12는 tracked 파일에 진행 중인 변경이 있는 상태에서 브랜치를 바꿉니다. untracked 파일은 명시적으로 포함하지 않으면 디렉터리에 남습니다.
변경 전에 상태 확인
git status --short와 git diff를 확인합니다. 전환 전에 무엇을 보존할지 결정하세요. 깨끗한 디렉터리가 영구 백업은 아닙니다.
git status --short
git diff참조나 별도 체크아웃 보존
알아보기 쉬운 메시지로 stash를 만듭니다. git stash push는 tracked 변경을 저장하며, untracked 파일까지 포함할 때만 -u를 쓰세요.
git stash push -m "school/manual-before-switch"
git stash list첫 번째 절차
git stash list를 확인한 뒤 대상 브랜치로 전환합니다. 돌아오면 선택한 항목을 적용하기 전에 문맥을 다시 확인하세요.
git switch target-branch다른 결과를 의도적으로 선택
git stash apply는 항목을 유지합니다. git stash pop은 적용이 성공해야 항목을 삭제하며, 충돌이 생기면 유지합니다.
git stash show --patch 'stash@{0}'
git stash apply 'stash@{0}'제한과 예외
자동 지점은 보호 경로의 reset, rebase, cherry-pick, revert, merge를 지원합니다. discard와 clean은 보편적인 Flux restore point를 만들지 않습니다.
충돌과 정리
충돌이 있으면 파일을 검토해 해결합니다. 진행 중인 상태를 숨기려고 pop을 반복하거나 항목을 지우지 마세요.
결과 확인
적용 후 파일, 인덱스, 테스트를 확인합니다. 원하는 작업이 보존됐음을 확인한 뒤에만 항목을 삭제하세요.
git status --short
git diff
git diff --cached자주 묻는 질문
stash는 push로 자동 공개되지 않으며 백업을 대신하지 않습니다. 복구하려면 관련 로컬 상태가 남아 있어야 합니다.
FluxGit에서 작업 검토
Safety Timeline은 reflog 이동, 위험, 복원 지점을 모읍니다. 지점 데이터는 로컬에 남습니다. 작업별 미리보기와 복구 문맥을 확인하세요.
Git 공식 문서
작업 도중 Git 브랜치 바꾸기: git stash 시각적 설명
추적하는 변경을 git stash로 보관하고 이름을 붙인 뒤 브랜치를 바꿉니다. 돌아와 pop으로 복원하세요. 추적하지 않는 파일이 남는 이유와 apply와 성공한 pop의 차이, 터미널 명령을 설명합니다.
테스트 저장소에서 녹화했습니다. 영어 음성과 한국어 자막입니다.
내레이션 대본 읽기
- 변경 작업 도중 지금 바로 다른 브랜치를 확인해야 합니다. 아직 커밋할 준비는 안 됐고, 변경을 잃고 싶지도 않습니다.
- app.py에 있는 작업 중인 변경입니다.
- stash는 Git이 추적하는 변경을 보관합니다. 여기서는 app.py의 변경을 저장하고 작업 폴더에서 그 변경을 제거합니다. 추적하지 않는 파일은 디스크에 남습니다. pop이 성공하면 변경을 복원하고 해당 stash 항목을 제거합니다.
- Stash current changes를 선택하고 나중에 알아볼 수 있는 이름을 붙입니다.
- 다른 브랜치로 전환합니다. 추적하는 변경은 stash에 보관됐습니다. 추적하지 않는 파일은 폴더에 남습니다.
- 그쪽 작업을 마쳤으면 main으로 돌아옵니다.
- stash를 pop합니다. app.py에 변경이 돌아왔고 stash는 사라졌습니다.
- apply와 pop의 차이는? apply는 변경을 복원하고 stash 항목을 유지합니다. pop은 변경이 성공적으로 적용된 경우에만 항목을 제거합니다. 충돌이 발생하면 stash는 유지됩니다.
- 터미널에서는 메시지와 함께 git stash push를 실행하고, 브랜치를 바꿨다가 돌아온 다음 git stash pop을 실행합니다.
- 요약입니다. 미완성 작업은 미완성 커밋 대신 선반에 보관합니다. 다음 수업은 풀 리퀘스트 전에 커밋을 정리하는 방법입니다.