2009-08-11 30 views
5

Tôi tự hỏi nếu điều này là có thể.Forking private git repo trong github.com

Tôi có "dự án khởi động" trong github (kho lưu trữ riêng tư). Những gì tôi muốn làm là tạo ra customerA repo (cũng riêng tư) nhưng nó nên được chia thành hai từ "dự án khởi động". Ý tưởng của tôi là khách hàng B, khách hàng C, tất cả đều có thể có repo riêng của họ và nếu tôi sửa lỗi chung chung trong "dự án khởi động", tôi có thể dễ dàng sửa lỗi cho tất cả khách hàng của mình.

Tôi chưa tìm thấy cách nào để giải quyết vấn đề này. Hiện tại tôi đã giải quyết vấn đề này thông qua nhân bản dự án riêng tư sampe .. đó có phải là vấn đề git hay vấn đề github.com không?

mọi công việc xung quanh?

+0

+1 đến @jrockway – memmons

Trả lời

7

Đây là nhánh dành cho. Mỗi khách hàng nhận được một chi nhánh, vấn đề được giải quyết.

Nhưng ... nếu mỗi kho lưu trữ của khách hàng nằm trong một tài khoản riêng biệt, bạn chỉ có thể sử dụng các công cụ git thông thường để chia sẻ thay đổi. Như một ví dụ:

$ git clone [email protected]:client/your-project 
$ cd your-project 
$ git remote add original [email protected]:you/your-project 
$ git fetch original 
$ git cherry-pick <change from original> 
$ git merge <whatever> 
$ git rebase <whatever> 
$ git push origin 

, vv

giao diện web Github là chỉ là một thuận lợi cho các trường hợp thông thường. Nếu bạn cần phải làm một cái gì đó không phổ biến, chỉ cần sử dụng công cụ git thông thường của bạn. Github không quan tâm.

+0

Trong trường hợp như thế này, điều gì xảy ra nếu bạn thay đổi tệp tại bản gốc được tùy chỉnh trong nhánh? Nếu bạn đồng bộ hóa từ chính, liệu các thay đổi ở trên sẽ ghi đè lên cấp chi nhánh? –

3

Đối với Git, nhân bản cũng giống như forking, hoặc để chính xác hơn: Git không biết forking, đó là một điều github. Về mặt kỹ thuật, tất cả các nhánh chỉ đơn giản là nhân bản với các chủ sở hữu khác nhau.

Vì vậy, nếu bạn sao chép dự án khởi động của mình cho ba khách hàng, bạn có một kho lưu trữ có nhiều nhánh vì mỗi nhánh là nhánh. Có lẽ bạn nên xem xét sử dụng mô-đun con cho dự án khởi động của bạn và bao gồm nó trong mỗi kho lưu trữ của khách hàng?