Я предполагаю, что в вашем коде "lib_remote" URL-адрес удаленного репозитория lib, а не ветка в вашем текущем репо?И URL-адрес удаленного репо, и ветвь в вашем текущем репо работают.
Я вижу, что вы использовали git subtree add
для добавления удаленного lib в качестве поддерева, а затем вы просто используете git subtree push
для внесения изменений.
Лучше сделать операцию git subtree split
, чтобы разделить изменения поддерева на отдельную ветвь в вашем текущем репо перед операцией push, затем переместить разделенную ветвь в удаленное хранилище и сохранить эту разделенную ветвь существующей,каждый раз перед нажатием снова выполните операцию git subtree split
, это создаст историю поддерева из точки, которую вы в последний раз разделили, это будет намного быстрее.В противном случае, без этого разделения, как вы сделали, git поддерево должно строить историю поддерева с точки, которую вы добавили, пока поддерево фиксирует рост, время построения будет увеличиваться и увеличиваться.
Если вы не используете --squash
при добавлении, вы можете использовать --rejoin
во время разделения, это будет намного быстрее.
Итак, шаг должен быть следующим.
добавить lib в основной проект
добавить поддерево git -P sub / libdir --squash lib_remote_url master
получить обновление из lib
git поддерево pull -P sub / libdir --squash lib_remote_url master
разделить изменения поддерева на отдельную ветку
git поддерево split -P sub / libdir -b lib_remote_branch
push изменения в lib_remote
git push lib_remote_url lib_remote_branch: master
Сохранить существующий lib_remote_branch и повторить шаг3 и шаг 4, когда в следующий раз нажмите.