検索

ホームページ  >  に質問  >  本文

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

PHPzPHPz2801日前1050

全員に返信(7)返信します

  • 大家讲道理

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

    クローンを作成する場合、次のように深さを指定できます。1 の場合、最新のコミットのみをクローンすることを意味します。

    リーリー

    返事
    0
  • 大家讲道理

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

    送信履歴を変更するには、git rebase を使用します。 git rebase 可以修改提交历史。

    比如合并前两个提交:http://stackoverflow.com/questions/59...

    善用rebase

    たとえば、最初の 2 つのコミットをマージします: http://stackoverflow.com/questions/59...🎜 🎜 特定のコミットを削除するだけでなく、複数の関数を含む分割コミットを変更して、コード ベースを維持することもできます。歴史はきれいです。 🎜

    返事
    0
  • 巴扎黑

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

    Javaで作成したWebプロジェクトであればsshなどを追加すればそれほど大きくなりません。
    または、すべてのパブリック jar を削除し、プロジェクトに直接配置しないことを検討することもできます。

    返事
    0
  • 天蓬老师

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

    .jar ファイルは明らかに独自のフロントエンド コードに属さず、サードパーティの依存関係に属しているため、コード ベースに配置すべきではありません。プロジェクトの初期段階でスクリプトを使用してサードパーティの依存関係のバージョンを管理し、コード ベースから .jar ファイルを削除することをお勧めします。

    返事
    0
  • PHP中文网

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

    Git は歴史を変えることができます
    最初に役に立たない履歴をローカルでマージしてから、強制的にプッシュアップしてみることができます

    返事
    0
  • PHP中文网

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

    .git は、すべての git コミット履歴情報を記録するローカル ウェアハウスです。 クローン作成時に深さを指定すると、大量の履歴コミット情報がダウンロードされるのを避けることができます。

    しかし、あなたの質問は、公開するときにそれをどのように処理するかということのようです、

    やり方は簡単で、公開時に .git ディレクトリを削除するだけです。

    返事
    0
  • 黄舟

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

    git lfsを使用する
    https://git-lfs.github.com/

    返事
    0
  • キャンセル返事