Мы пытались заставить 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
Выдает исключение: Не удается объединить сквош: 'foo' никогда не добавлялся.
Во-вторых:
git subtree pull -P foo git@example.com:foo.git master
Это работает (вроде как), но имеет проблему извлечения всех коммитов и конфликтов с файлами, которые были изменены.
Наконец, я попробовал это:
git pull --squash -s subtree git@example.com:foo.git master
Это дало мне желаемый результат с выводом Автоматическое слияние прошло успешно; остановлен перед фиксацией в соответствии с запросом
, и все файлы отображаются как измененные (с правильным содержимым).
В идеале я хотел бы продолжать использовать первую версию git-subtree
и получить результат, близкий к последней версии. Если нам нужно последовательно использовать последнюю версию в будущем, мы будем это делать, но я немного сбит с толку тем, почему последняя не вызывает конфликтов слияния, а средняя делает.
Любая помощь приветствуется.