Próbowaliśmy uzyskać git-subtree pracując nad projektem (z wersją git 1.7.9.4) i natrafiliśmy na odrobinę komplikacji. Ktoś inny poprzedni dodany poddrzewa z tym poleceniem kilka miesięcy temu:git-subtree pociągają komplikacje
git subtree add --prefix=foo [email protected]:foo.git master
Teraz nie było istotnych zmian do foo
i chcielibyśmy połączyć w tych zmianach, idealnie zgniatając je Żaden z plików nie zostały. zmodyfikowane, ponieważ zostały zaimportowane.
Próbowałem trzy rzeczy, aby spróbować scalić zmiany.
pierwsze:
git subtree pull --squash -P foo [email protected]:foo.git master
Która rzuca wyjątek: Can't squash-merge: 'foo' was never added.
drugie:
git subtree pull -P foo [email protected]:foo.git master
Działa to (w pewnym sensie), ale ma problem ciągnięcie we wszystkich zatwierdzeń i powoduje konflikty z plikami, które zostały zmodyfikowane.
Wreszcie, próbowałem to:
git pull --squash -s subtree [email protected]:foo.git master
To daje mi pożądanego rezultatu, z wyjściem Automatic merge went well; stopped before committing as requested
i wszystkie pliki wyświetlane jako zmodyfikowane (przy prawidłowej zawartości).
Idealnie chciałbym kontynuować używanie pierwszej wersji git-subtree
i uzyskać wynik zbliżony do ostatniej wersji. Jeśli będziemy musieli używać ostatniej wersji konsekwentnie do przodu, to będziemy, ale jestem nieco zdezorientowany, dlaczego ostatni nie powoduje konfliktów łączących, podczas gdy środkowy.
Każda pomoc jest doceniana.
Miałem ten sam problem, który okazał się być spowodowany przez brakujący podfolderu w opcji prefiksu podczas próby pobrania. Dodanie tego jako komentarza, ponieważ komunikat o błędzie nie podaje żadnego wskazania tego błędu, a rozwiązywanie problemów doprowadziło mnie tutaj. –
Dzięki, jest to przydatne. Miałem powiązany problem, w którym przeniosłem podkatalog po dodaniu do niego poddrzewa, co wydaje się potknąć w tym meczu –