2011-12-29 29 views
14

Tôi đang thử nghiệm việc sử dụng git-subtree để hợp nhất thư viện repo vào một dự án lớn hơn. Nó có vẻ tuyệt vời về nguyên tắc. Đôi khi tôi làm một "git subtree kéo" tôi nhận được xung đột nhập như thế này:git báo cáo hợp nhất xung đột với không có thay đổi, dòng trống (sử dụng git-subtree)

<<<<<<< HEAD 
======= 
An inserted line from the lib repo 
>>>>>>> 4d348903449ebb584ab224cb34c6038fbf6b352d 

Đó là một sự thay đổi đó đã được thực hiện trong repo thư viện, sáp nhập vào một tập tin đó chưa được sửa đổi tại địa phương. Hoặc một ví dụ khác, nơi mà tôi đã thêm một dòng trong repo dự án địa phương, nhưng trong một tập tin đó là một phần của cây con được sáp nhập:

<<<<<<< HEAD 
Another inserted line 
======= 
>>>>>>> 4d348903449ebb584ab224cb34c6038fbf6b352d 

Tại sao git báo cáo này như là xung đột nhập, nhưng khu vực này báo cáo là xung đột trống? Bất kỳ cách nào để ngăn chặn nó?

Đây là đủ dễ dàng để giải quyết, nhưng nó messes lên workflow git-cây con

+0

Đảm bảo kết thúc dòng của bạn giống nhau trên tất cả các kho (Linux, Windows, Mac) – knittl

+0

Tôi nghĩ rằng đã xảy ra (trong ví dụ thứ hai) khi tệp được thay đổi cục bộ có sửa đổi ngày laster so với phiên bản đã hợp nhất. –

Trả lời

-3

Sử dụng submodules để giữ công việc chia sẻ. Có git-nô lệ nếu bạn làm rất nhiều công việc với các dự án chia sẻ và không chia sẻ cần phải được phối hợp. Dòng của bạn kết thúc chênh lệch dung lượng lưu trữ sẽ biến mất.

+0

Vui lòng thêm nhận xét cho phiếu giảm giá. –

+0

Bị bỏ phiếu vì tôi đã hỏi về cách sử dụng git-subtree, không phải cách sử dụng các mô-đun con. Và không có bằng chứng nào liên quan đến kết thúc dòng –

+0

Đúng. Tôi hiểu sai. –

1

Nó không phải là một giải pháp cho vấn đề gốc của bạn, mà là một sự giảm nhẹ của nó. bạn có thể sử dụng
git merge -Xignore-space-change để bỏ qua những thay đổi về không gian trong các cam kết của bạn.

Đây có thể là sự cố với kết thúc của bạn. bạn có thể thử một lựa chọn --dry-run trong merge (git merge không có --dry-run tùy chọn):

$git merge -Xignore-space-change --no-commit --no-ff $BRANCH

để xem các thay đổi trước khi bạn thực sự cam kết họ.

Các vấn đề liên quan