私は git サブツリー拡張 ( https://github.com/apenwarr/git-subtree ) を使用しています。「--squash」を使用して、メイン プロジェクトのログをきれいにします。手順は次のとおりです。
ライブラリをメイン プロジェクトに追加する
git subtree add -P sub/libdir --squash lib_remote master
lib からアップデートを取得する
git subtree pull -P sub/libdir --squash lib_remote マスター
変更を lib_remote にプッシュする
git サブツリー プッシュ -P サブ/libdir --squash lib_remote マスター
それは私にとって非常にうまく機能します(メインプロジェクトとライブラリの両方で、歴史が理にかなっています)。問題は git subtree push の時間がどんどん長くなってしまうことです。
git-subtree を使用する私の目的は、git-subtree は履歴を保持していないため、サブツリーの変更をプッシュできないと尋ねた Screndib とほぼ同じ です。今後、これを修正/回避するにはどうすればよいですか?
--squash を使用する場合、 push を処理するたびに、git subtree は「サブツリーの追加」以降の履歴全体を検索する必要があると思います。
サブツリーのプッシュ時間を短縮するにはどうすればよいですか? または、履歴全体ではなく、最後のgitサブツリーのプッシュ(またはプル)以降の変更のみを処理して、より効果的に機能させますか?