Trong xung đột hợp nhất git, tệp BACKUP, BASE, LOCAL và REMOTE được tạo là gì?


122

Tôi cho rằng các tệp LOCAL và REMOTE đúng như tên gọi của chúng, nhưng BASE và BACKUP để làm gì?

Câu trả lời:


166

Git thực hiện hợp nhất ba chiều, tìm tổ tiên chung (hay còn gọi là "cơ sở hợp nhất") của hai nhánh bạn đang hợp nhất. Khi bạn gọi git mergetoolvề một xung đột, nó sẽ tạo ra những tệp này phù hợp để đưa vào một công cụ hợp nhất 3 chiều điển hình. Như vậy:

  • foo.LOCAL: phía "của chúng ta" của xung đột - tức là nhánh của bạn ( HEAD) sẽ chứa các kết quả của hợp nhất
  • foo.REMOTE: phía "của họ" trong cuộc xung đột - nhánh bạn đang hợp nhất vào HEAD
  • foo.BASE: tổ tiên chung. hữu ích để đưa vào một công cụ hợp nhất ba chiều
  • foo.BACKUP: nội dung của tệp trước khi gọi công cụ hợp nhất, sẽ được lưu trên hệ thống tệp nếu mergetool.keepBackup = true.

9
Không. LOCALLà phiên bản trong HEAD. BACKUPlà phiên bản có trên đĩa trước khi bạn gọi mergetool. Nó có thể chứa các điểm đánh dấu xung đột diff3 và bạn có thể đã chỉnh sửa nó trước khi gọi mergetool.
Edward Thomson


đây là một bài viết hay giải thích các trường hợp hợp nhất bao gồm cả hợp nhất ba chiều: git-scm.com/book/en/v2/…
qatz

16
các từ LOCAL / REMOTE bằng cách nào đó gây hiểu lầm, khiến tôi nghĩ rằng chúng đang đề cập đến "các thay đổi của tôi" / "các thay đổi từ xa", nhưng thực ra thường trong ngữ cảnh "hợp nhất thành chủ", LOCAL là nhánh đích là sửa đổi khác và REMOTE là nhánh nguồn là sửa đổi của tôi. :)
TingQian LI

8
Họ là ... Bạn đang làm một rebase? Bởi vì các bên được đảo ngược trong một rebase.
Edward Thomson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.