我一直在使用 git 子树扩展 ( https://github.com/apenwarr/git-subtree )。我使用“--squash”来清理主项目的日志,我的步骤是这样的:
将lib添加到主项目中
git subtree add -P sub/libdir --squash lib_remote master
从 lib 获取更新
git subtree pull -P sub/libdir --squash lib_remote master
将更改推送到 lib_remote
git subtree push -P sub/libdir --squash lib_remote master
它对我来说效果很好(主要项目和库,有一个很有意义的历史)。问题是 git subtree push 的时间,越来越长。
我使用 git-subtree 的目的与 Screndib 几乎相同,他们问 git-subtree 没有保留历史记录,所以我无法推送子树更改,我该如何解决这个问题/以后避免这个问题?
我想,当使用 --squash 时,每次处理 push 时, git subtree 都需要搜索自“subtree add”以来的整个历史记录。
如何减少子树推送的时间?或者让它更有效地工作,而不是整个历史,只处理自上次 git subtree push(或 pull)以来的更改?