Có một chút không rõ tình hình thực tế của bạn là gì. Câu hỏi đầu tiên bạn nên tự hỏi là liệu tệp có thực sự cần được theo dõi hay không - các tập tin không được hấp dẫn thường là các tập tin có nguồn gốc, như bạn đề xuất trong các bình luận, và do đó không cần phải theo dõi (và không nên).
Nếu bạn thực sự cần theo dõi nó, đó có phải là tệp nhị phân không? Git không cố gắng hợp nhất các tệp nhị phân - chúng luôn hiển thị dưới dạng xung đột hợp nhất. Git là tốt về phát hiện các tập tin nhị phân, vì vậy trong trường hợp này, bạn có thể an toàn. Nếu nó không phải là một tệp nhị phân, thì bạn vẫn buộc Git phải xử lý nó một cách thích hợp. Trong tệp .gitattributes
, hãy thêm một cái gì đó như:
path/to/file merge=binary
Điều này sẽ trực tiếp xử lý tệp này dưới dạng tệp nhị phân nhằm mục đích hợp nhất. Bạn cũng có thể, nếu bạn muốn, xác định một trình điều khiển hợp nhất tùy chỉnh. Sử dụng merge=my_merge_driver
trong file gitattributes, sau đó trong gitconfig bạn thêm một cái gì đó như:
[merge "my_merge_driver"]
name = descriptive name
driver = my_script %O %A %B
Ba đối số cho kịch bản là tổ tiên phiên bản phổ biến (O cho trang gốc), phiên bản chi nhánh hiện tại của (A) và các chi nhánh của nhau Phiên bản (% B) - chúng là các tệp tạm thời và trình điều khiển hợp nhất có nghĩa vụ thực hiện hợp nhất và để lại kết quả trong% A. Xem man gitattributes
để biết thêm về điều này.
Bằng cách nào "thuần"? Nó là một tập tin có nguồn gốc, hoặc một tập tin nhị phân có lẽ? – cmbuckley
Tôi không thể nghĩ ra một từ nào khác. Unmergable, có lẽ? Có, cho các mục đích của chúng tôi, chúng ta hãy nói nó là một tập tin có nguồn gốc. –
Điều này có mùi giống như một 'tôi cần khóa trong Git' đối số, mặc dù được diễn đạt khác nhau. Những gì bạn đang yêu cầu đi ngược lại tinh thần của một DVCS. – Perception