우리는 git 커밋을 diff, 스냅샷 및/또는 히스토... 노트

우리는 git 커밋을 diff, 스냅샷 및/또는 히스토리로 생각하나요?

Git 커밋을 이해하는 것은 복잡하고, 사람들은 다양한 정신 모델을 가지고 있습니다. 설문 조사에 따르면 51%는 커밋을 버전 간의 변경(diffs)으로 생각하고, 42%는 파일의 현재 상태인 스냅샷으로 생각하며, 오직 4%만이 이전 커밋의 역사로 생각합니다.내부적으로 Git은 커밋을 스냅샷으로 저장하여 체크아웃 시간을 더 빠르게 합니다. 그러나 공간을 절약하기 위해 델타(differences)로 파일을 저장하는 팩파일도 사용합니다.이 스냅샷 기반 구현에도 불구하고 Git은 델타에서 스냅샷을 재구성하여 비교하는 방식으로 차이를 계산합니다.일반적인 "잘못된" 정신 모델은 이전 커밋에서부터의 차이로 커밋을 인식하는 것입니다. 이는 정확하지 않지만, 일상적인 사용에서 여전히 유용할 수 있습니다.가장 일반적인 정신 모델은 코드 변경에 초점을 맞추는 차이로 커밋을 고려하는 것입니다. 다른 모델, 예를 들어 스냅샷,은 파일 이동 및 병합 커밋을 이해하는 데 유용합니다.또한, 사람들은 커밋과 추가 정보(예: 이메일, 대화)를 연관시키거나 "전" 및 "후" 상태로 바라보는 경우도 있습니다.