Git поддерево не поддерживает перебазирование (как один из двух методов "интеграции" изменений: перебазировка или слияние). Существует один TODO , в котором упоминается rebase, но я думаю, что он находится в другом контексте.
Команда извлечения поддерева даже не выдает команду git pull, но разделяет ее на две части. необходимые команды, fetch + merge или я бы предложил переопределить стратегию интеграции по умолчанию для pull (pull.rebase
).
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh#L870
Если я правильно понимаю ваш сценарий, Я думаю, вам следует избегать изменения B/x
непосредственно в своем хранилище. Поддерево позволяет вам изменять A/b/x
и использовать subtree push
для отправки изменений на удаленный поддерево.
В любом случае, поддерево на самом деле не «перебазировано». Вы всегда можете перебазировать пульт дистанционного управления B
напрямую, но вам все равно нужно объединить несвязанные истории в A
. Это сложно, и для меня, кажется, требуется интерактивная перебазировка.