Quá trình của chúng tôi cho git là một hợp nhất định kỳ xuống nhánh chính của chúng tôi để các thay đổi có thể được hợp nhất trở lại các chi nhánh tính năng mới nhất của chúng tôi. Kể từ khi ra khỏi vòng mới nhất của sáp nhập từ một chi nhánh khác, chúng tôi đang chạy vào một vấn đề trong đó giải pháp là không rõ ràng.Tại sao cam kết không tuân theo lỗi cơ sở hợp nhất?
Chúng tôi có một kho lưu trữ có 19 mô-đun con trong đó. Khi chúng ta kết hợp tất cả các mô-đun con, chúng ta thấy những gì chúng ta tin là đầu ra mong đợi cho chúng ta biết các tập tin đang được sửa đổi, xung đột, vv. của đầu ra sau (chỉnh sửa để chỉ ra các vấn đề).
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.
Bây giờ, chúng tôi có thể chạy đề xuất git update-index
lệnh. Nó sẽ làm cho git hạnh phúc cho một mô-đun con, nhưng chúng ta chưa bao giờ phải chạy nó trước đây. Vấn đề thực sự tồi tệ khi nhìn vào các mô-đun con foo1 và foo2 trong đó không có sự trợ giúp nào được hiển thị.
Đối với mỗi sửa đổi của các mô-đun con, bạn cũng đã cam kết và đẩy repo gốc? – VonC
Trước khi hợp nhất cả hai cây là hoàn toàn chức năng mà không có bất kỳ vấn đề của một cam kết bị mất trong bất kỳ submodule. Đó có phải là ý bạn không? – Peter
Tôi có nghĩa là, khi bạn sửa đổi một submodule, bạn phải cam kết và đẩy, sau đó đi đến phụ huynh, cam kết và đẩy là tốt (vì SHA1 của submodule đã thay đổi). Tôi đã tự hỏi nếu bạn đã thực hiện bất kỳ sửa đổi nào cho các mô-đun con đó (và nếu có, nếu bạn đã thực hiện theo chuỗi cam kết đẩy), trước khi cố gắng hợp nhất repo gốc. – VonC