답변:
을 실행 git branch xxx
하면 Git 은 새 브랜치를 생성 하지만 실제로는 브랜치로 전환하지는 않습니다. 작업 트리는 전혀 수정되지 않습니다. (새 브랜치는 이전 브랜치와 정확히 동일한 파일과 히스토리를 갖습니다.)
git checkout xxx
분기를 전환하기 위해 실행할 때 새 분기의 파일은 "객체 데이터베이스" 에서 추출됩니다. 이 아카이브는 보관 된 .git/objects/
모든 커밋에서 모든 파일의 압축 된 원본을 포함합니다. (또한 커밋 자체가 저장되는 위치입니다.)
기존 브랜치에 속하지만 새 브랜치에없는 파일은 단순히 삭제됩니다 (이미 오브젝트 저장소에 이미 존재하므로 Git은 다시 전환하면 다시 추출 할 수 있습니다).
브랜치간에 일부 파일이 동일 git checkout
할 경우 삭제하지 않고 전혀 추출하지 마십시오. 이렇게하면 커밋되지 않은 변경 사항이 체크 아웃 동안 유지 될 수 있습니다.