我一直在使用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 subree push -P sub/libdir --squash lib_remote master
它对我来说非常好(主要项目和lib,有一个很好的历史).问题是git子树推送的时间越来越长.
我使用git-subtree的目的与Screndib几乎相同,Screndib要求 git-subtree不保留历史,所以我不能推动子树更改,我怎样才能解决这个问题/将来避免这个问题?
我想,当使用--squash时,每次处理推送时,git子树需要搜索自"子树添加"以来的整个历史记录.
如何减少子树推送的时间?或者让它更有效,而不是整个历史,只有自上次git子树推送(或拉动)以来的流程变化?