2015-10-11 16 views
6

Tôi muốn có các tệp chi nhánh cụ thể có cùng tên. Tôi cần để có thể hợp nhất từ ​​chi nhánh phát triển của tôi để làm chủ mà không có thay đổi được thực hiện trong tệp này.Cách tạo các tệp chi tiết cụ thể trên GitHub

Ví dụ:
Giả sử rằng tôi muốn có hai tệp readme.md khác nhau. Trong một cái tôi muốn có nội dung: MASTER và trong một số khác DEV. Nhưng nếu tôi cố gắng làm điều đó, trong khi tạo yêu cầu kéo GitHub sẽ cố gắng hợp nhất tệp này, đó chính là vấn đề của tôi. Tôi không muốn GitHub hợp nhất tệp này mỗi khi tôi thực hiện thay đổi.

Cách tốt nhất để giải quyết vấn đề này là gì?

+0

có mà file đã cam kết? – grimsock

+0

@grimsock: vâng, như tôi đã đề cập trong phần chỉnh sửa, trong trường hợp của tôi, tôi có hai tệp như thế này: tệp readme.md và CI, vì vậy rõ ràng chúng cần phải được cam kết –

Trả lời

4

Giả sử project là tên của chi nhánh sẽ được hợp nhất và README.md là tên của tệp giữ thông tin chi tiết cụ thể.

tôi sẽ đề nghị các bước sau:

  1. Merge chi nhánh dự án, nhưng chắc chắn rằng thay đổi không được cam kết, và không tua nhanh

    $ git merge --no-commit --no-ff project 
    
  2. Unstage README.md file và kiểm như hiện nay chi nhánh phiên bản

    $ git checkout HEAD -- README.md 
    
  3. Hoàn tất hợp nhất

    $ git commit 
    

Ngoài ra, nó làm cho tinh thần để cài đặt trình điều khiển hợp nhất mà sẽ giữ phiên bản chi nhánh cụ thể của một tập tin trong trường hợp xung đột hợp nhất. Trong trường hợp này, bạn sẽ không bao giờ cần giải quyết xung đột trong các tệp chi tiết cụ thể theo cách thủ công.

lái xe hợp như vậy thường được gọi là ours và định nghĩa là:

$ git config --global merge.ours.driver true 

Bây giờ, bạn có thể chỉ định trong .gitattributes tập tin, khi sáp nhập này nên được sử dụng.

Trong trường hợp của chúng tôi, nó là cần thiết để thêm các nguyên tắc sau để .gitattributes và cam kết nó:

README.md merge=ours

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