2012-04-29 41 views
6

Tôi và ngã ba của bạn tôi từ kho lưu trữ chính (phía trên). Đêm qua, chúng tôi đã có cùng một phiên bản của kho lưu trữ này trong máy địa phương. Sau đó, tôi đã thêm một tính năng mới và bạn tôi cũng đã thêm một tính năng mới nữa. Bạn tôi đã kéo yêu cầu tới kho lưu trữ chính và tôi đã hợp nhất yêu cầu kéo này với kho lưu trữ ngược dòng không có xung đột. Và khi tôi lấy từ thượng nguồn và hợp nhất với nhánh chủ của tôi, nó xung đột. Tôi nên làm gì trong tình huống này để giải quyết xung đột? (Kho lưu trữ phía trên phải có 2 tính năng mới sau khi giải quyết xung đột)Kết hợp xung đột Git

Trả lời

4

Chỉ cần xem các tệp được đánh dấu là xung đột git status và tìm dấu xung đột (bạn có thể tìm kiếm ==== trong tệp). Hòa hợp các thay đổi giữa chúng, tìm hiểu xem có bất kỳ điều gì bất ngờ khác bị hỏng do sự kết hợp mã của bạn hay không, chạy thử nghiệm của bạn và sau đó sử dụng git addgit commit như bình thường để thực hiện cam kết hợp nhất tính năng mới của bạn với bạn.

Upstream: original     with friend's feature   with both 
       \ \    /    \    /
       \ -- Friend's --/     \   /
       \         \   /
        ---- Yours ------------------------- your merge 
+0

Cảm ơn bạn, thông tin thực sự hữu ích. –

1

Bạn có thể gõ git difftool path/filename trong giao diện điều khiển để sử dụng một công cụ để giải quyết mâu thuẫn hoặc sử dụng phần mềm Git đã giải quyết xung đột được xây dựng trong. Tôi thực sự thích SmartGit (từ các nhà sản xuất của SmartSVN) và TortoiseGit (rất giống với TortoiseSVN).

10

Lưu ý rằng bạn cũng có thể giải quyết trực tiếp một cuộc xung đột nhập từ Eclipse/Egit bản thân:
Xem "Egit: Solving Merge Conflicts":

Bạn có thể tự chỉnh sửa văn bản ở phía bên trái hoặc sử dụng Copy thay đổi hiện tại từ nút phải sang trái để sao chép các thay đổi xung đột từ phải sang trái.

Bước tiếp theo là từ menu ngữ cảnh của tệp, để chọn Nhóm -> Thêm vào chỉ mục. Hơn cam kết.

merge conflict resolution in EGit

+0

Xem thêm http://stackoverflow.com/questions/11674950/how-to-do-an-ours-merge-using-the-eclipse-git-merge-tool làm ví dụ về cách sử dụng công cụ đó. – VonC

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