Мы пытались заставить git-subtree работать над проектом (с версией git 1.7.9.4) и столкнулись с некоторыми сложностями. Кто-то еще ранее добавил поддерево этой командой несколько месяцев назад:
git subtree add --prefix=foo git@example.com:foo.git master
Теперь в foo
произошли существенные изменения, и мы хотели бы объединить эти изменения, в идеале их объединяя. Ни один из файлов не был изменен с момента их импорта.
Я попробовал три вещи, чтобы попытаться объединить изменения.
Во-первых:
git subtree pull --squash -P foo git@example.com:foo.git master
Что выдает исключение: Can't squash-merge: 'foo' was never added.
Второе:
git subtree pull -P foo git@example.com:foo.git master
Это работает (вроде), но имеет проблему с извлечением всех коммитов и конфликтует с файлами, которые были изменены.
Наконец, я попробовал это:
git pull --squash -s subtree git@example.com:foo.git master
Это дает мне желаемый результат с выводом Automatic merge went well; stopped before committing as requested
и всеми файлами, которые отображаются как измененные (с правильным содержимым).
В идеале я хотел бы продолжить использовать первую git-subtree
версию и получить вывод, близкий к последней версии. Если мы будем последовательно использовать последнюю версию, мы будем использовать ее, но меня немного смущает вопрос, почему последняя не вызывает конфликтов слияния, а средняя -
Любая помощь приветствуется.