스테이징은 git의 커밋 프로세스 이전 단계입니다. 즉, git의 커밋은 준비 및 실제 커밋의 두 단계로 수행됩니다.
변경 세트가 스테이징 영역에있는 한 git을 사용하면 스테이지 파일을 다른 버전의 스테이징 파일로 바꾸거나 스테이징에서 변경 사항을 제거하는 등 원하는대로 편집 할 수 있습니다.
깨진 은유 시간 :
이전 아파트에서 새 아파트로 물건을 가져 오기 위해 무버를 호출하는 시나리오를 고려하십시오. 그렇게하기 전에 물건을 다니고, 가지고 갈 물건과 뭘 버릴지를 결정하고, 가방에 싸서 메인 복도에 두십시오. 무버는 단순히 와서 복도에서 (이미 포장 된) 가방을 가져 와서 운반합니다. 이 예에서, 이동자가 물건을 얻을 때까지 모든 것이 준비됩니다. 무엇이 어디로 가고, 어떻게 포장 하는가 등을 결정합니다 (예를 들어, 이동자가 물건을 가져 오기 전에 물건의 절반을 버릴 것이라고 결정할 수 있습니다-그 부분 임) 준비 중).
기술적 관점에서, 스테이징은 모든 작업을 실패 할 수있는 (스테이징) 및 실패 할 수없는 (커밋)으로 분할하여 트랜잭션 커밋을 지원합니다.
준비가 완료되면 git의 커밋이 트랜잭션 방식으로 구현됩니다. 준비의 여러 단계가 실패 할 수 있습니다 (예 : 커밋해야하지만 HDD 용량이 99.9999 %이며 git에 커밋을 수행 할 공간이 없습니다). 이는 스테이징에서 실패하고 (저장소가 부분 커밋으로 손상되지 않음) 스테이징 프로세스는 커밋 히스토리에 영향을 미치지 않습니다 (오류의 경우 리포지토리가 손상되지 않음).