cari

Rumah  >  Soal Jawab  >  teks badan

.git 文件太大时怎样处理

一个 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.

PHPzPHPz2810 hari yang lalu1057

membalas semua(7)saya akan balas

  • 大家讲道理

    大家讲道理2017-04-21 11:20:47

    Apabila pengklonan, anda boleh menentukan kedalaman, seperti berikut, jika ia adalah 1, ia bermakna hanya mengklonkan komit terkini.

    git clone git://xxoo --depth 1

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-21 11:20:47

    Gunakan git rebase untuk mengubah suai sejarah komit.

    Sebagai contoh, menggabungkan dua komit pertama: http://stackoverflow.com/questions/59...

    Gunakan rebase dengan baik, selain daripada memadamkan komitmen tertentu, anda juga boleh mengubah suai komit pemisahan yang mengandungi berbilang ciri pada satu masa; .

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-21 11:20:47

    Jika ia adalah projek web yang dibuat di Jawa, ia tidak terlalu besar jika anda menambah ssh atau sesuatu yang lain.
    Atau anda boleh mempertimbangkan untuk menanggalkan semua balang awam dan tidak meletakkannya terus dalam projek.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-21 11:20:47

    Fail

    .jar jelas bukan milik kod bahagian hadapan anda sendiri, tetapi kebergantungan pihak ketiga dan tidak boleh diletakkan dalam pangkalan kod. Adalah disyorkan untuk menggunakan skrip untuk mengurus versi kebergantungan pihak ketiga pada peringkat awal projek dan mengalih keluar fail .jar daripada pangkalan kod.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-21 11:20:47

    Git boleh mengubah sejarah
    Anda boleh cuba menggabungkan sejarah yang tidak berguna secara tempatan dan kemudian menolaknya secara paksa

    balas
    0
  • PHP中文网

    PHP中文网2017-04-21 11:20:47

    .git ialah gudang tempatan anda, yang merekodkan semua maklumat sejarah komit git,
    Menentukan kedalaman apabila pengklonan boleh mengelakkan memuat turun terlalu banyak maklumat komitmen sejarah.

    Tetapi soalan anda nampaknya bagaimana untuk mengendalikannya semasa menerbitkan,
    Mudah sahaja, hanya padamkan direktori .git semasa menerbitkan.

    balas
    0
  • 黄舟

    黄舟2017-04-21 11:20:47

    使用git lfs
    https://git-lfs.github.com/

    balas
    0
  • Batalbalas