git에서 스테이징 영역과 로컬 라이브러리의 차이점: 인덱스 영역이라고도 하는 스테이징 영역은 작업 공간과 로컬 창고 사이의 전환 영역입니다. 변경 사항 또는 변경 사항) 및 로컬 저장소는 로컬 코드의 상태를 기록합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Git 버전 2.30.0, Dell G3 컴퓨터.
1. Git Warehouse 관련 개념 이해
Git 명령을 깊이 이해하려면 Git Warehouse와 관련된 몇 가지 개념을 이해해야 합니다. 먼저 로컬 코드 디렉터리 D: gittest 디렉터리:
.git은 숨겨진 디렉터리이므로 이를 보려면 숨겨진 파일을 표시해야 한다는 점에 유의해야 합니다.
작업 디렉터리: 간단히 말해서 로컬에 저장된 파일이나 디렉터리는 작업 공간에 속하며 코드 수정은 일반적으로 작업 공간에서 수행됩니다. 일반적으로 숨겨진 .git 디렉터리를 제외한 로컬 파일은 작업공간에 속합니다. 위 그림에 보이는 mydir, file1.txt, file2.txt는 모두 작업공간에 속합니다.
Stage: 이름에서 알 수 있듯이 작업 공간과 로컬 창고 사이의 전환입니다. 작업 공간의 코드 상태(변경 사항이 있는지, 무엇이 변경되는지)를 기록합니다. .git 디렉토리에 있습니다.
로컬 저장소(repository): 로컬 코드의 상태를 기록하며 .git 디렉토리에 위치합니다.
상태 이해:
생각해 보세요. 일반적으로 중요한 파일을 수정할 때 수정 오류를 방지하고 궁극적으로 복원하려면 먼저 백업을 해야 합니다. 파일 자체가 크면 백업할 경우 공간을 더 많이 차지하므로 비용 효율적이지 않습니다. 파일 자체를 백업하는 대신 파일의 수정 상태를 기록해 두는 방법도 있다. 파일 상태는 다음 설명과 유사합니다.
파일의 첫 번째 줄: xxx를 ****
로 대체합니다. 파일의 세 번째와 네 번째 줄 사이에 한 줄이 추가되고 내용은...
직접 말하면 파일 상태는 파일의 수정 기록입니다. 수정 기록을 바탕으로 파일을 어떤 수정을 했는지 알 수 있으며, 수정 기록에 따라 파일을 원래 상태로 복원할 수도 있습니다. 수정 전.
2. git 명령 설명
상태 보기와 관련된 여러 명령:
git status 작업 공간, 준비 영역 및 로컬 창고 간의 파일 변경 사항 보기
git diff 작업 공간 및 준비 영역의 차이점 보기
git diff --cached 스테이징 영역과 로컬 웨어하우스의 차이점 확인
git diff HEAD 작업공간과 로컬 웨어하우스의 차이점 확인
일부 명령어에 해당하는 동작은 다음과 같습니다.
아래 로컬 파일 수정으로 인해 관련 영역이 변경되는 것을 예시로 들어보겠습니다. 수정 전 작업 영역, 스테이징 영역 및 로컬 웨어하우스 간의 상태가 일관됩니다. (1) 로컬 수정 파일 file1.txt를 추가합니다. 이 줄은
git status 작업 공간, 준비 영역 및 로컬 창고 간의 파일 변경 사항을 확인합니다.
위 그림에서 볼 수 있듯이
Changes not staged for commit:, 설명 파일은 The 작업 공간이 변경되었지만 수정 사항이 아직 준비 영역에 제출되지 않았습니다
git diff를 통해 작업 공간과 준비 영역 사이의 변경 사항을 확인하세요
그림에서 볼 수 있듯이 작업 공간과 준비 영역 사이에 무슨 일이 일어났는지 the Staging Area 로컬 파일이 수정되었고 수정 사항이 Staging Area에 제출되지 않았기 때문입니다
git diff HEAD 작업공간과 로컬 웨어하우스 사이의 상태를 확인하세요
사진에서 볼 수 있듯이 위의 작업 공간 지역 창고에서도 차이가 발생합니다. 아주 간단합니다. 현재 로컬 웨어하우스와 스테이징 영역의 상태가 일치합니다. git diff --cached 스테이징 영역과 로컬 웨어하우스를 확인하면 둘 사이에 차이가 없음을 알 수 있습니다. ) 로컬 수정 사항을 Staging Area
git add에 제출합니다. 로컬 수정 사항이 제출된 Staging Area
git status
수정 사항이 Staging Area에 제출된 것을 확인할 수 있습니다:커밋할 변경 사항:
제출 후 git diff를 사용하여 확인하면 작업 공간과 준비 공간 사이에 차이가 없음을 알 수 있습니다.
하지만 준비하는 공간과 작업하는 공간에는 차이가 있어요.
git diff --cached
마찬가지로 git diff HEAD를 사용하면 작업 공간과 로컬 창고 사이에 여전히 차이가 있음을 알 수 있습니다
(3) 변경 사항을 로컬 창고에 제출
git commit -m "에 줄 추가 file1.txt"는 스테이징 영역에서 로컬 저장소로 제출을 수정합니다.
git 상태를 확인하면 브랜치가 'origin/master'보다 1 커밋만큼 앞서 있다는 메시지가 표시됩니다. 이는 작업공간의 수정 사항이 로컬 저장소이지만 원격 분기로 푸시되지 않았습니다.
git diff, git diff --cached, git diff HEAD는 프롬프트에서 차이점을 찾지 못합니다. 작업공간에 대한 수정 사항이 로컬 창고에 제출되었기 때문에 현재 작업공간, 준비 영역 및 로컬 창고의 상태는 일관됩니다.
역방향 작업
git add – git checkout은 작업 공간 파일을 준비 영역 상태로 되돌리고 작업 공간 파일을 준비 영역 파일로 바꿉니다.
예를 들어 file1.txt 파일이 작업공간에서 수정되었다면 아직 임시저장 영역에 제출되지 않은 상태입니다. 수정을 포기하려면
git checkout file1.txt를 사용하여 파일을 스테이징 영역으로 반환할 수 있습니다(수정 취소).
git commit – git Reset HEAD를 사용하여 로컬 창고에 제출된 최신 파일을 가져옵니다. 작업 영역에 영향을 미치지 않습니다.
요약:
로컬 파일(작업 공간)의 특정 수정 사항을 포기하려는 경우:
추천 학습 : "Git 튜토리얼"
위 내용은 git에서 스테이징 영역과 로컬 라이브러리의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!