Мы пытались получить git-subtree, работая над проектом (с git версии 1.7.9.4) и столкнулись с некоторыми осложнениями. Кто-то предыдущий добавил поддерево с этой командой несколько месяцев назад:git-subtree pull осложнения
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
и получить выход, близкий к последней версии. Если мы будем последовательно использовать последнюю версию, мы будем, но я немного смущен, почему последний не создает конфликтов слияния, пока средний делает.
Любая помощь приветствуется.
У меня была такая же проблема, которая, как оказалось, была вызвана отсутствием подпапки в префиксной опции при попытке вытащить. Добавление этого в качестве комментария, поскольку сообщение об ошибке не дает никаких указаний на эту ошибку, и устранение неполадок привело меня сюда. –
Спасибо, это полезно. У меня была связанная с этим проблема, когда я переместил subdir после добавления в нее поддерева, который, кажется, отключает этот матч –