2013-04-10 28 views
5

Tôi có một dự án riêng tư trong github, nơi một nhóm các nhà phát triển cam kết thay đổi. Một khách hàng đã yêu cầu phát triển một số tùy chỉnh nặng trên bản sao hệ thống của họ. Một nhóm mới sẽ làm việc trong dự án này, nhưng tôi không muốn nhóm này có quyền truy cập vào kho lưu trữ ban đầu. Vì vậy, tôi đã tạo một kho lưu trữ mới trên github, và khởi tạo nó với mã từ dự án gốc.git duy trì 2 phiên bản của cùng một dự án, với những người dùng khác nhau trên mỗi

Tuy nhiên, tôi vẫn muốn dự án thứ 2 nhận các bản cập nhật được thực hiện trên dự án gốc. Làm thế nào tôi có thể thiết lập các kho lưu trữ để đáp ứng nhu cầu này?

Hoặc, nếu tôi giữ một dự án, có cách nào để nhóm mới chỉ truy cập vào chi nhánh cụ thể không?

+0

Chúng cần phải có quyền truy cập vào kho lưu trữ ban đầu theo một cách nào đó. Tôi nghĩ những gì bạn có nghĩa là họ cần phải có quyền truy cập chỉ đọc. Có lẽ đây là một kho lưu trữ riêng tư, nếu không câu hỏi sẽ không có ý nghĩa gì cả. –

+0

có, đây là một repo riêng tư. Tôi không muốn họ có quyền truy cập vào dự án gốc, thậm chí chỉ đọc, vì nó chứa dữ liệu khác (một số tệp, chi nhánh bổ sung) không liên quan đến mã họ có quyền truy cập vào – periklis

Trả lời

5

Tôi đã làm theo đề xuất trên this site. Tôi lặp lại quá trình này ở đây cho bất cứ ai quan tâm: Giả sử rằng các dự án ban đầu được kiểm tra trong PROJECTA và dự án có nguồn gốc trong projectB:

Lần đầu tiên tôi đã làm:

cd path/to/projectB 
git remote add orig_project path/to/projectA 
git fetch orig_project 
git merge orig_project/master -X theirs 
git push 

Bây giờ mỗi khi tôi cần phải đồng bộ hóa thay đổi từ PROJECTA để projectB, tôi làm:

git fetch orig_project 
git merge orig_project/master 
git push 

orig_project có thể là một ything Lần đầu tiên tôi sử dụng -X theirs vì tất cả thay đổi được tìm nạp xung đột

0

Điều bạn đang tìm kiếm được gọi là chi nhánh (và tôi thấy bạn đang sử dụng nó).

https://help.github.com/articles/branching-out http://learn.github.com/p/branching.html

Một khi bạn có các chi nhánh bạn không cần một codebase mới, bạn có thể sử dụng fork (Nói với họ để cho bạn dự án) và theo cách này họ có thể nhận được thông tin cập nhật

đọc mroe ở đây: Definition of "downstream" and "upstream"

+0

Và làm cách nào để ngăn chặn nhóm truy cập vào codebase gốc? Tôi muốn họ có quyền truy cập vào một nhánh của dự án – periklis

1

Lấy dữ liệu khác ra khỏi kho lưu trữ. Tạo một kho lưu trữ mới chỉ với các tệp và các chi nhánh bạn muốn chúng có thể xem và xóa chúng khỏi kho lưu trữ cũ. Sau đó, give them read-only access to the new repository.

+0

Đây thực sự là một giải pháp thay thế khả thi, tôi sẽ xem xét nó – periklis

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