2010-03-23 17 views
12

Cho phép nói rằng tôi đang thực hiện rebase B của một chi nhánh lên master và có xung đột. git mở công cụ hợp nhất mặc định với 3 tệp như đầu vào: file.LOCAL, file.BASE, file.REMOTE (chúng được đặt tên khác một chút, nhưng LOCAL, BASE và REMOTE nằm trong tên tệp và cách chúng được phân biệt).Tôi có thể đổi tên LOCAL, REMOTE và BASE như được sử dụng trong git mergetool không?

Bây giờ, theo trang người dùng mergetool: $ LOCAL được đặt thành tên của tệp tạm thời chứa nội dung của tệp trên nhánh hiện tại; $ REMOTE được đặt thành tên của một tệp tạm thời chứa nội dung của tệp được hợp nhất và $ BASE được đặt thành tên của tệp tạm thời chứa cơ sở chung cho hợp nhất.

Điều đó thực sự không có ý nghĩa đối với tôi. LOCAL là trạng thái hiện tại của nhánh. Nơi tôi bị lạc là BASE và REMOTE. Vì vậy, câu hỏi của tôi là:

Có thể làm cho git sử dụng tên chi nhánh thay vì LOCAL và các tên có ý nghĩa tương tự hơn là BASE và REMOTE? Ví dụ, nếu tên chi nhánh là FeatureX và BASE = tập tin như nó tồn tại trong tổng thể, là có một cách để có được git để thay thế FeatureX cho LOCAL và làm chủ cho BASE, để nó rõ ràng hơn nơi nguồn đến từ ? Điều này đặc biệt là một vấn đề khi thực hiện một rebase.

Trả lời

8

Có thể làm cho git sử dụng tên chi nhánh thay vì ĐỊA PHƯƠNG

Tôi không nghĩ như vậy, nhưng nếu bạn khai báo trong mergetool bạn a graphical merge tool, bạn có thể gọi đó là công cụ bên ngoài với danh hiệu lựa chọn của bạn:

(trích một calll kịch bản sáp nhập công cụ)

t1="'$4 (current branch)'" 
t2="'(common ancestor)'" 
t3="'(to be merged)'" 

    "C:/Program Files/Araxis/Araxis Merge/Compare.exe" -max -wait -merge -3 -a2 -title1:${t1} -title2:${t2} -title3:${t3} "$alocal" "$base" "$remote" "$result" 

Bằng cách đó, bạn có thể dễ dàng nhìn thấy là những gì những gì.

3

Tôi không hoàn toàn chắc chắn giải thích này là chính xác, nhưng BASE sẽ là điểm mà tại đó cả hai phiên bản của tệp đều giống nhau. Nó có thể là những gì bạn gọi là 'cha mẹ' trong một cây Git.

Khi họ phân tách, bạn đã kết thúc bằng LOCAL và REMOTE đang xung đột với nhau.

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