Nasz proces git jest okresowym łączeniem się z naszą główną gałęzią, aby zmiany mogły zostać połączone z naszymi gałęziami najnowszych funkcji. Od czasu ostatnich rund fuzji z jednej gałęzi do drugiej, natrafiamy na problem, w którym rozwiązanie nie jest jasne.Dlaczego błędy commits nie są zgodne z błędem merge-base?
Mamy repozytorium, które zawiera 19 submodułów. Podczas łączenia wszystkich submodułów widzimy, co uważamy za oczekiwany wynik, mówiąc nam, że pliki są modyfikowane, konflikty itp. Następnie, gdy dojdziemy do scalenia repozytorium "root", wszystko idzie na południe i widzimy z następujących danych wyjściowych (edytowane w celu wskazania tylko problemów).
warning: Failed to merge submodule projects/foo1 (commits don't follow merge-base)
warning: Failed to merge submodule projects/foo2 (commits don't follow merge-base)
warning: Failed to merge submodule projects/foo3 (not fast-forward)
Found a possible merge resolution for the submodule:
931a61165f3b2079523a122477fa5f44c123406d: Comment of last merge
If this is correct simply add it to the index for example by using:
git update-index --cacheinfo 160000 931a61165f3b2079523a122477fa5f44c123406d "projects/foo3"
which will accept this suggestion.
Teraz możemy uruchomić sugerowane polecenie git update-index
. To sprawi, że git będzie zadowolony z tego jednego submodułu, ale nigdy wcześniej nie musieliśmy tego uruchamiać. Problem jest naprawdę zły, patrząc na submoduły foo1 i foo2, w których nie wyświetla się pomoc.
Dla każdej modyfikacji submodułów, czy również zatwierdziłeś i wcisnąłeś repozytorium macierzyste? – VonC
Przed scaleniem oba drzewa są w pełni funkcjonalne bez żadnego problemu z brakiem zatwierdzenia w dowolnym module. Czy o to Ci chodziło? – Peter
Mam na myśli to, że kiedy modyfikujesz moduł częściowy, musisz zatwierdzić i nacisnąć, a następnie przejść do rodzica, zatwierdzić i nacisnąć również (ponieważ zmieniony został SHA1 modułu podrzędnego). Zastanawiam się, czy wykonałeś jakąkolwiek modyfikację tych submodułów (a jeśli tak, czy wykonałeś sekwencję zatwierdzania wypychania), przed próbą scalenia repozytorium nadrzędnego. – VonC