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