Chúng tôi đã cố gắng để có được git-subtree làm việc trên một dự án (với phiên bản git 1.7.9.4) và đã chạy vào một chút của một biến chứng. Một người nào khác trước thêm cây con bằng lệnh này vài tháng trước:biến chứng kéo git-subtree
git subtree add --prefix=foo [email protected]:foo.git master
Bây giờ đã có thay đổi đáng kể để foo
và chúng tôi muốn hợp nhất trong những thay đổi đó, tốt nhất là đè bẹp chúng trong Không ai trong số các tập tin có được. đã được sửa đổi vì chúng đã được nhập.
Tôi đã thử ba điều để thử và hợp nhất trong các thay đổi.
Đầu tiên:
git subtree pull --squash -P foo [email protected]:foo.git master
nào ném ngoại lệ: Can't squash-merge: 'foo' was never added.
Thứ hai:
git subtree pull -P foo [email protected]:foo.git master
này hoạt động (loại), nhưng có vấn đề kéo trong tất cả các cam kết và có xung đột với các tệp đã được sửa đổi.
Cuối cùng, tôi đã cố gắng này:
git pull --squash -s subtree [email protected]:foo.git master
này mang lại cho tôi những kết quả mong muốn, với sản lượng Automatic merge went well; stopped before committing as requested
và tất cả các tập tin hiển thị như sửa đổi (với các nội dung chính xác).
Lý tưởng nhất là tôi muốn tiếp tục sử dụng phiên bản git-subtree
đầu tiên và nhận được kết quả gần với phiên bản cuối cùng. Nếu chúng ta phải sử dụng phiên bản cuối cùng liên tục, chúng tôi sẽ, nhưng tôi hơi bối rối là tại sao người cuối cùng không tạo ra xung đột hợp nhất trong khi phiên bản trung gian thực hiện.
Mọi trợ giúp đều được đánh giá cao.
Tôi đã gặp phải vấn đề tương tự như đã được gây ra bởi tôi thiếu một thư mục con trong tùy chọn tiền tố khi cố gắng kéo. Thêm điều này làm nhận xét vì thông báo lỗi không đưa ra bất kỳ dấu hiệu nào về lỗi này và khắc phục sự cố đã dẫn tôi đến đây. –
Cảm ơn, điều này rất hữu ích. Tôi đã có một vấn đề liên quan, nơi tôi di chuyển subdir sau khi thêm subtree vào nó, mà dường như để đi lên trận đấu này –