一个 repo 里有 .jar
之类文件, 从 Github 下载 tag 里的 .zip
文件大小有 8M,
然后我用 filter-branch --tree-filter
删除了相关目录, 但大小没减多少..
查看了一下, 整个 repo 特别是 .git/objects/
文件太大, 总共 48M,
于是网上搜 git gc
命令的参数尝试性地弄了几个, 到了 37M, 主要是 .git/objects/pack/
36M.
作为一个 JS 前端模块还是太大了. 其实太早的 commit 可以丢弃的.
我想删除重建 .git
用来打包是可以的,
但遇到这样的问题时大家会怎么处理来舍弃无用的历史和文件?
---------
更新:
关于去掉部分 commit, 换个说法,,
我去掉一部分文件和一部分文件相关的 commit, 但要求方便从官方版本 merge 更新
目的是保证我的 repo (不用于开发, 仅仅发布压缩代码) 小, 而更新能进行 merge.
大家讲道理2017-04-21 11:20:47
커밋 기록을 수정하려면 git rebase
을 사용하세요.
예를 들어 처음 두 커밋을 병합합니다: http://stackoverflow.com/questions/59...
rebase
을 잘 활용하세요. 특정 커밋을 삭제하는 것 외에도 한 번에 여러 기능이 포함된 커밋 로그를 분할하여 여러 커밋을 동일한 기능과 병합하여 코드 기반 기록을 깔끔하게 유지할 수도 있습니다. .
巴扎黑2017-04-21 11:20:47
Java로 만든 웹 프로젝트라면 SSH 등을 추가하면 그리 크지 않습니다.
또는 모든 공용 jar을 제거하고 프로젝트에 직접 배치하지 않는 것을 고려할 수 있습니다.
天蓬老师2017-04-21 11:20:47
.jar 파일은 분명히 자신의 프런트 엔드 코드에 속하지 않지만 타사 종속성에 속하므로 코드 베이스에 배치하면 안 됩니다. 프로젝트 초기 단계에서 스크립트를 사용하여 타사 종속성 버전을 관리하고 코드 베이스에서 .jar 파일을 제거하는 것이 좋습니다.
PHP中文网2017-04-21 11:20:47
.git은 모든 Git 커밋 내역 정보를 기록하는 로컬 창고입니다.
복제 시 깊이를 지정하면 기록 커밋 정보가 너무 많이 다운로드되는 것을 방지할 수 있습니다.
근데 게시할 때 어떻게 처리해야 하느냐는 질문인 것 같은데요,
간단합니다. 게시할 때 .git 디렉터리를 삭제하면 됩니다.