2012-04-02 3 views
5

나의 git 프로젝트 중 하나에서, 나는 일련의 자바 라이브러리를 번들로 묶은 zip 파일을 가지고있다. zip 파일은 4.5MB이고 11 개의 파일을 포함합니다. 포함 된 라이브러리 중 하나만 제가 정기적으로 변경됩니다 (현재 50KB 정도). 다른 라이브러리는 정적입니다.git은 파일 중 하나만 정기적으로 변경되는 zip 아카이브를 현명하게 처리합니까?

git이 현명하게 zip 파일의이 작은 변경 사항 만 변경하고 모든 zip 파일을 모든 커밋으로 대체하지 않으면 좋을 것입니다. 그렇지 않으면 내 자식 저장소가 매우 빠르게 성장할 것입니다.

내 라이브러리를 업데이트하고 zip 파일을 다시 만들고 변경 내용을 적용하면 과 같이 서버에 < 100KB의 순서로 개체가 기록됩니다. "개체 쓰기 : 100 % (58/58), 77.64 KiB, 완료. ". 그래서 git는 스마트하게 4.5MB zip 파일 전체가 아니라 zip의 변경된 부분만을 보냅니다.

실제로 git이 스마트하게 zip 파일을 처리합니까?

답변

5

Git은 바이너리 파일의 diff를 처리하는 방법을 알고 있으므로 zip에서 몇 개의 파일이 변경되면 각 커밋에서 전체 파일을 저장하지 않습니다.

부수적으로 저장소에 우편 번호를 저장하는 것을 권장하지 않습니다.이 저장소는 아티팩트 만 저장하는 저장소가 아니라면 코드의 아티팩트 (즉 컴파일 결과) 일 가능성이 높습니다.

+0

그건 의미가 있습니다. 소스 저장소에 바이너리를 저장하는 것이 옳습니다. 그러나 나는 항상 최신의 바이너리 파일을 제공하고 싶다. (수동으로 바이너리를 업데이트하고 업로드하는 대신). –

+0

그러면 후크와 스크립팅을 할 수 있습니다. :) – CharlesB

관련 문제