>개발 도구 >자식 >'git stash'의 임시 저장 작업에 대한 자세한 설명

'git stash'의 임시 저장 작업에 대한 자세한 설명

Guanhui
Guanhui앞으로
2020-07-23 18:01:274809검색

'git stash'의 임시 저장 작업에 대한 자세한 설명

이 명령이 필요한 이유

이 명령을 알았을 때 그리고 사용해 본 후에는 이 명령이 정말 사용하기 쉽기 때문에 너무 마음에 들었습니다.

이 명령을 사용할 때의 시나리오를 말씀드리겠습니다.

이때 저는 feature_666 브랜치에 있었고, feature 666 모듈을 구현하는 데 매우 집중하고 날아다니는 키보드처럼 코드를 작성하고 있었습니다. ~~
그렇다면 고객님께 버그가 보고되었습니다. 매우 심각한 문제이므로 즉시 해결해야 합니다. ! !
그래서 새 브랜치가 작동하는지 확인하려면 릴리즈 브랜치로 가야 하는데, 666 기능이 아직 완성되지 않았다면 어떻게 해야 할까요?
이때 객관식 질문에 직면했습니다:
A: 제출 후 전환하고, feature_666 브랜치에 코드를 저장했는데 의미 없는 커밋이 생성되었습니다.
B: 제출하지 않고 바로 전환했지만, 이 옵션을 선택하는 사람은 아무도 없습니다.

선택이 어렵지 않으신가요? 이때, C옵션도 있다는 점 잊지 마세요!

C: git stash를 사용하여 현재 수정 사항(커밋되지 않은 코드)을 캐시에 저장하고 분기를 전환하여 버그를 수정한 다음 돌아와서 git stash pop을 통해 제거합니다.

1. 임시 작업

#查看当前状态
git status 
#如果有修改,添加修改文件
git add .
#暂存操作
git stash save '本次暂存的标识名字'

2. 현재 임시 기록 보기

#查看记录
git stash list

수정 사항은 어디에 저장되나요?

프로젝트에 git init을 사용할 때 추가 버전 제어를 수행하면 프로젝트 경로에 .git 숨겨진 폴더가 생성됩니다. .git은 모든 버전 관리 정보를 저장합니다.
.git/refs/stash는 마지막 stash에 해당하는 노드 포인터를 저장합니다

마찬가지로 .git/log/refs/stash

에서 모든 stash 레코드 정보를 볼 수 있습니다. 여러 stash 저장 상황

ok, 파일을 수정한 다음 git stash를 다시 사용해 보겠습니다. 이때 두 가지 임시 변경 사항이 있는데 어떻게 확인합니까?

git stash list //스테이징 영역의 모든 임시 수정 기록 보기

커밋하지 않고 git stash를 두 번 실행하면 두 stash의 구체적인 수정 사항을 정확하게 구분할 수 없습니다. show 위대한 Git은 전혀 똑똑하지 않습니다. 어떻게 그럴 수 있습니까! .

따라서 이 경우 다음과 같이 숨김 저장 수정에 이름을 지정하는 것이 매우 중요합니다.

git stash save <message>

3. 임시 작업을 복원합니다.

'pop 명령을 사용하여 복원 후 복원합니다. 임시 저장 영역은 현재 기록을 삭제합니다'

#恢复指定的暂存工作, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash pop stash@{index}

'복원 후 임시 저장 영역은 현재 기록을 유지합니다'

#恢复指定的暂存工作, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash apply stash@{index}

4. 임시 저장 영역을 삭제합니다

#删除某个暂存, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash drop stash@{index}
#删除全部暂存
git stash clear

권장 튜토리얼: " Git Tutorial

위 내용은 'git stash'의 임시 저장 작업에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제