GitHub ZIP 다운로드에는 커밋 기록이 들어 있지 않습니다
GitHub의 'ZIP 다운로드'로 받는 파일은 리포지토리 전체가 아니라 특정 시점의 스냅샷입니다. GitHub 문서 '소스 코드 아카이브 다운로드'에 따르면 이 스냅샷에는 전체 기록이 포함되지 않습니다. 같은 브랜치에서 받아도 나중에 받으면 내용이 다를 수 있으니, 용도에 맞게 받는 방법을 고르는 것이 좋습니다.

ZIP 파일은 특정 시점의 스냅샷입니다
GitHub에서는 브랜치, 태그, 특정 커밋 중 하나를 골라 그 시점의 스냅샷을 내려받을 수 있습니다. 이 스냅샷은 git archive 명령으로 만들어지며, 형식은 tarball과 zipball 두 가지입니다.
스냅샷에는 리포지토리의 전체 기록이 포함되지 않습니다. 커밋 이력까지 필요하다면 ZIP 대신 리포지토리를 복제하라고 문서는 안내합니다.
내려받는 방법
소스 코드 아카이브는 리포지토리 화면, 릴리스, 태그 세 곳에서 받을 수 있습니다. 가장 흔한 방법은 리포지토리 기본 페이지에서 파일 목록 위의 '코드'를 누른 다음 'ZIP 다운로드'를 누르는 것입니다.
URL로 직접 요청할 수도 있습니다. URL에 .zip을 쓰면 zipball을, .tar.gz를 쓰면 tarball을 받습니다.

같은 아카이브라도 내용이 달라질 수 있습니다
소스 코드 아카이브는 요청이 들어올 때 만들어지고, 잠시 캐시된 뒤 삭제됩니다. 같은 아카이브를 나중에 다시 요청하면 새로 생성됩니다.
커밋 ID로 받은 아카이브는 해당 커밋이 리포지토리에 남아 있고 리포지토리 이름이 바뀌지 않았다면 언제 받아도 파일 내용이 같습니다. 반면 브랜치와 태그는 다른 커밋을 가리키도록 옮겨질 수 있습니다. 그래서 같은 브랜치나 태그 이름으로 받아도 이전에 받은 파일과 내용이 다를 수 있습니다.
리포지토리 이름도 영향을 줍니다. 리포지토리 이름이 아카이브 안 디렉터리 구조에 들어가기 때문에, 이름이 바뀌면 루트 디렉터리 이름도 함께 바뀝니다.
안정성이 중요하다면 릴리스를 확인하세요
악의적으로 만들어진 파일의 압축을 풀지 않도록 아카이브가 늘 같은지 확인하는 등, 보안 목적으로 아카이브의 안정성에 기대는 경우가 있습니다. 문서는 이럴 때 원본 다운로드 대신 릴리스를 사용하라고 권합니다.
문서에 따르면 GitHub은 압축 설정을 바꾸기 최소 6개월 전에 미리 알립니다.
코드만 빠르게 확인하려면 ZIP 다운로드로 충분합니다. 커밋 기록이 필요하면 리포지토리를 복제하세요. 매번 같은 내용을 받아야 한다면 커밋 ID로 받거나 릴리스를 확인하는 편이 좋습니다.

