2015-07-21 14 views
7

Mặc dù tôi đã đọc các nhận xét tương tự ở đây, trong diễn đàn này, tôi chưa tìm thấy cách tiếp cận phù hợp cho việc làm việc theo nhóm một cách liền mạch.Hợp nhất các xung đột với project.pbxproj trên Git - Xcode iOS

Nếu bạn biết ý tôi là gì, bạn có thể thấy khó khăn khi làm việc với git và tệp project.pbxproj trong Xcode, ngay cả khi bạn đang làm việc trong một tệp khác.

Say,

  • Một nhà phát triển: tạo thư mục Foo, thêm foo.swift cho dự án.
  • nhà phát triển B: tạo thư mục Thanh, thêm bar.swift vào dự án.

Đường dẫn khác nhau ... nhưng bạn biết đấy, xung đột! Và như bạn cũng có thể nhận thấy, để lại project.pbxproj không phải là một tùy chọn.

Vì vậy, câu hỏi của tôi là: Làm thế nào để bạn xử lý điều này một cách chuyên nghiệp, Git chảy sẵn sàng và cách dễ nhất.

Cảm ơn tất cả các bạn rất nhiều.

PS: Tôi hiện đang sử dụng Bitbucket và SourceTree nếu có vấn đề.

PS2: Tôi muốn tránh dòng lệnh và chỉnh sửa tệp theo cách thủ công nếu có thể.

+0

Tại sao 'project.pbxproj' đặc biệt không? Xung đột có thể xảy ra trong bất kỳ tệp nào. – trojanfoe

+0

Vấn đề với tệp pbxproj là trong khi đó là một tệp văn bản, cấu trúc của nó là một mớ hỗn độn và giải quyết xung đột hợp nhất trong đó có thể rất đau đớn. Ví dụ, một sự hợp nhất có vấn đề có thể làm tăng 1k xung đột trong một tập tin khó hiểu (uuids ở khắp mọi nơi như tài liệu tham khảo, vv). – droussel

Trả lời

5

Tạo một file .gitattributes và thêm dòng sau:

*.pbxproj merge=union

Hợp nhất nội sẽ xảy ra tự động và mà không cần phải chạm vào bất cứ điều gì.

Hoặc, bạn có thể thử mergepbx, cách hợp nhất thông minh hơn.

+0

Đã thử ... đây không phải là bằng chứng đạn. Tôi đã có một trường hợp, rằng dự án xcode không mở thêm nữa. cần hợp nhất bằng tay. – Primoz990

1
  1. Tệp mới được tạo bởi chỉ một nhà phát triển trên nhánh "phát triển chính".
  2. Đẩy file mới để "chính-phát triển"
  3. Những tập tin được thực hiện bởi các nhà phát triển khác sau khi kéo
Các vấn đề liên quan