Осложнения извлечения поддерева git

Мы пытались заставить 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и получить результат, близкий к последней версии. Если нам нужно последовательно использовать последнюю версию в будущем, мы будем это делать, но я немного сбит с толку тем, почему последняя не вызывает конфликтов слияния, а средняя делает.

Любая помощь приветствуется.

19
задан David H. Clements 19 March 2012 в 20:37
поделиться