Esko đề xuất giải pháp tuyệt vời phù hợp cho các dự án nguồn mở. Tuy nhiên, nó đòi hỏi mọi thành viên của nhóm cộng tác viên đều có tài khoản trả phí trên GitHub, điều này không phải lúc nào cũng đúng.
VonC chỉ ra rằng có một giải pháp khác chỉ liên quan đến một tài khoản GitHub trả phí. Và tôi sẽ cung cấp một số hướng dẫn cách triển khai giải pháp của VonC.
Giả sử chúng tôi có hai kho riêng: test-test
và test-production
. Repo đầu tiên là để phát triển và mọi thành viên trong nhóm đều có quyền truy cập vào nó. Repo thứ hai là để triển khai tự động mã và do đó các hạn chế truy cập mạnh được áp dụng cho nó.
Thiết lập cho nhà phát triển khá đơn giản và dễ nhìn: git clone https://github.com/<username>/test-test
, thực hiện công việc của họ và đẩy nó trở lại.
cài đặt cho cộng tác viên là phức tạp hơn một chút:
Kéo chi nhánh từ repo phát triển git clone https://github.com/<username>/test-test
Thêm kho từ xa git remote add production-repo https://github.com/<username>/test-production.git
Fetch dữ liệu từ repo mới git fetch production-repo
Tạo địa phương mới chi nhánh cho mã sản xuất và chuyển sang nó git checkout -b local-production
biết chính xác git để liên kết các chi nhánh địa phương và từ xa git branch -u production-repo/production
Tải về nội dung của các ngành sản xuất từ xa đến một git pull
mâu thuẫn Phân loại ra khả năng của địa phương và đó là nó!
Bây giờ tất cả những gì được đẩy từ chi nhánh local-production
sẽ xâm nhập vào test-production
repo và các ngành khác sẽ được đẩy lên test-test
repo.
Ok, điều đó thật tuyệt, nhưng truy cập phân cấp chi tiết hơn ([tên người]] thì sao? - Bạn có thể yêu cầu. Câu trả lời là: bạn có thể tạo repos tương tự như test-test
cho mọi nhà phát triển và sử dụng cùng một mẫu để thiết lập chúng. Nhược điểm của phương pháp này là các cộng tác viên sẽ phải sao chép từng bản ghi test-test-[person's name]-development
.
VonC cũng đề xuất chia nhỏ số đăng ký production
và thực hiện yêu cầu kéo - tại sao không làm như vậy? Thứ nhất, bởi vì bạn không thể núp một repo riêng tư mà không phải trả tiền tài khoản GitHub. Thứ hai, để cho phép một người nào đó ngã ba riêng repo, bạn cấp cho anh ta quyền truy cập đầy đủ vào nó, vì vậy anh ấy có thể trực tiếp đẩy nó vào. Và một nhà phát triển có thể mắc lỗi, hãy đẩy tới bản phát hành production
để khởi chạy các móc dịch vụ GitHub và sửa chữa mọi thứ. Và nếu bạn sử dụng một số nhà phát triển thuê ngoài, điều này có thể sẽ xảy ra.
Ngoài ra, tôi muốn cảnh báo bạn về tính năng lỗi
lỗi
trong ứng dụng GitHub chính thức dành cho Windows. Các nhánh với thượng lưu khác với nguồn gốc sẽ xuất phát. Vì vậy, sử dụng dòng lệnh để đẩy.
Tất cả những điều này có vẻ hơi phức tạp một chút. Nhưng nó luôn luôn là như thế nếu bạn không muốn trả tiền cho sự đơn giản.
Tôi biết câu hỏi này là lỗi thời. Nhưng hãy xem https://help.github.com/articles/about-branch-restrictions/ –