Tôi có một dự án nguồn đóng được xây dựng trên khung nguồn mở của tôi. Tôi muốn biết làm thế nào tôi nên cấu trúc công việc của tôi. Dưới đây là dự đoán tốt nhất của tôi bằng cách sử dụng git với submodules.Quy trình làm việc Git phù hợp cho hệ điều hành và mã riêng?
- tôi tạo một repo khuôn khổ cộng đồng về github với submodules được Repos git riêng biệt.
- Tôi mua một tài khoản "vi mô" trên github ($ 7) để tôi có thể có một kho lưu trữ riêng tư.
- Tôi tạo một repo riêng và sao chép repo khung công cộng.
Từ đây tôi có thể thay đổi:
- đang tin của tôi và đẩy để repo tin của tôi trên github
- Mã khuôn khổ cộng đồng và đẩy để repo github riêng tư của tôi và sau đó gửi một kéo yêu cầu từ khung công cộng ..? Hoặc làm thế nào điều này sẽ làm việc?
Làm cách nào để xử lý một repo có chứa mã riêng và mã công cộng và mô-đun con. Ngay bây giờ có vẻ như tôi chỉ phải duy trì hai codebases riêng biệt để đạt được điều này.
Tôi đang tìm câu trả lời tốt nhất có thể giúp ai đó khá mới mẻ để git sắp xếp hợp lý quá trình làm việc trên một codebase là một nửa nguồn mở và một nửa riêng tư. Một điều tốt về nó là mỗi thư mục là riêng tư hoặc công khai, do đó không có lo lắng về việc có các tệp riêng tư và công khai cùng nhau ở đâu đó - nhưng một số thư mục riêng tư có thể ở trong các thư mục công khai!
Một ví dụ khác tôi có thể đưa ra là sử dụng zendframework để xây dựng trang web công ty riêng của bạn trong khi vẫn có thể thực hiện kéo mỗi ngày (và có thể vá đẩy) vào repo zend. Và cũng có thể kéo và đẩy trang web riêng của bạn bên trong zendframework.
Ví dụ, hãy tưởng tượng một cấu trúc thư mục như thế này:
/private_folder
/public
/public_folder
/public_folder2
/private_folder
Có lẽ tôi đang yêu cầu hai nhiều để xử lý tất cả trong một gia nhập thư mục repo. Có lẽ không có cách nào dễ dàng để làm điều này và tôi nên tách chúng và làm tất cả các bản vá lỗi công cộng trong một và sau đó chỉ cần kéo vào repo riêng của tôi. Tất nhiên, điều này có nghĩa rằng nếu tôi đang làm việc trên một số mã riêng - Tôi sẽ phải rời khỏi repo đó và mở một công khai và thực hiện thay đổi mã vá, sau đó quay lại chế độ riêng tư, hợp nhất và sau đó tiếp tục làm việc trên mã riêng.
Bạn đề cập đến Zend ở trên. Điều này có nghĩa là dự án của bạn dựa trên PHP? Hay đây chỉ là một ví dụ? (Tôi hỏi vì các ngôn ngữ khác nhau đóng gói mã theo nhiều cách khác nhau và nó có thể ảnh hưởng đến quy trình làm việc của bạn.) –
Có, nó dựa trên PHP - vì vậy không yêu cầu * building *. – Xeoncross