Tôi có một vài người đóng góp trong dự án github của tôi. Tôi muốn cho phép chỉ một trong số họ "đẩy" để làm chủ. Và anh chàng này không phải là tôi (chủ nhân của kho lưu trữ). Có thể làm được không?Làm thế nào để bảo vệ "chủ" trong github?
Trả lời
Quay lại sau đó, khi câu hỏi này được đăng, GitHub không cho phép bạn chỉ định đặc quyền truy cập ở cấp chi nhánh. Bạn chỉ có thể làm điều đó ở cấp độ kho lưu trữ. Vì vậy, những gì bạn đang yêu cầu là không thể.
Nếu bạn muốn làm việc khắc phục hạn chế này, cá nhân tôi thấy hai lựa chọn:
- bạn có thể sử dụng một số loại cam kết móc, vv để ít nhất thông báo cho ai đó mà một cái gì đó sai xảy ra
- Nếu bạn thực sự cần điều khiển chặt chẽ này, bạn có thể sử dụng hai kho lưu trữ, một trong những chỉ giữ nhánh "master" của bạn. Sau đó, bạn sẽ cần đảm bảo rằng chỉ có "anh chàng" của bạn mới có quyền ghi vào kho lưu trữ chính
Tôi nghĩ rằng việc giải quyết dễ dàng hơn với một số tổ chức là dễ dàng hơn. Trong nhóm của tôi, chúng tôi không bao giờ thúc đẩy bất cứ điều gì trực tiếp để làm chủ, mà thay vào đó luôn tạo ra các yêu cầu kéo. Điều đó đảm bảo rằng ít nhất một người nào đó có một cái nhìn trước khi mã được sáp nhập và bạn cũng có thể xác định một chính sách mà chỉ có "anh chàng" của bạn được phép hợp nhất các yêu cầu kéo.
Cập nhật
GitHub now announced rằng họ sẽ tung ra một tính năng mới gọi là chi nhánh được bảo vệ. Tính năng này đã có mặt trong các bản phân phối git khác như Atlassian Stash trong nhiều năm. Nó sẽ cho phép bạn bảo vệ một số nhánh khỏi bị đẩy. Tuy nhiên, nó vẫn không cho phép bảo vệ hoàn toàn dựa trên ACL của các nhánh riêng lẻ. Vì vậy, bạn có thể muốn kiểm tra tính năng này trong trường hợp bạn không muốn dựa vào giải pháp tổ chức như phác thảo ở trên.
Đây chính xác là những gì forking được thiết kế cho. Bạn sẽ có kho lưu trữ chính được bảo vệ và bạn sẽ cho phép các quyền đọc trên kho lưu trữ đó cho tất cả các cộng tác viên. Những người đóng góp này sẽ chia rẽ repo, và sẽ đẩy những thay đổi của họ vào bản sao cá nhân của họ về repo chính. Khi họ đã sẵn sàng giới thiệu mã vào kho chính, họ sẽ gửi yêu cầu kéo vào repo chính. Trong trường hợp này, chủ sở hữu của dự án chính có thể hoàn thành yêu cầu kéo.
Vấn đề với quy trình làm việc forking/PR là thành viên có quyền "viết" trên repo chính vẫn có thể đẩy nó. –
Lưu ý: Protected branches and required status checks (3 tháng 9 năm 2015) sẽ cho phép bạn bảo vệ một chi nhánh
- chống lại buộc phải đẩy
- khỏi việc xoá bỏ
- chống lại những thay đổi sáp nhập cho đến khi được yêu cầu kiểm tra tình trạng vượt qua
Kể từ tháng Ba năm 2016, như commented bởi Sander dưới đây, bạn có User and team restrictions
Đôi khi kết hợp với một chi nhánh bảo vệ được tốt nhất còn lại để một người quản lý phát hành hoặc một nhóm người chịu trách nhiệm về sự ổn định của chi nhánh đặc biệt . Các tổ chức hiện có thể chỉ định thành viên và nhóm nào có thể đẩy tới một chi nhánh được bảo vệ.
đáng tiếc, bạn vẫn không thể hạn chế quyền truy cập chi nhánh đối với một số thành viên .... Sẽ yêu thích tính năng đó cho nhánh chính. –
Tôi đồng ý hoặc ít nhất có thể hạn chế hợp nhất với quản trị viên chỉ dành cho các chi nhánh được bảo vệ. – joeybloggs
@PratikBothra https://github.com/blog/2137-protected-branches-improvements Có vẻ như bây giờ là có thể. :) – Sander
- 1. Làm thế nào để bảo vệ dll?
- 2. Làm thế nào để bảo vệ .NET DLL's
- 3. Làm thế nào để bảo vệ đầu ra kill
- 4. Bảo vệ mã phía máy chủ Node.js
- 5. Bảo vệ video flash khỏi tải xuống/phải bảo vệ
- 6. Làm thế nào để bảo vệ toàn bộ nhánh trong cây nội dung Sitecore?
- 7. Làm thế nào để bảo vệ quyền của tệp trong git?
- 8. Làm thế nào để bảo vệ mật khẩu một tệp Excel đã nén trong Java?
- 9. Làm thế nào để bảo vệ chống lại CSRF theo mặc định trong ASP.NET MVC 4?
- 10. Làm thế nào để bạn bảo vệ chống lại XSRF trong Grails?
- 11. Làm thế nào để bảo vệ tài sản và nội bộ trong C#?
- 12. Làm thế nào để giả lập các thành viên ảo được bảo vệ trong FakeItEasy?
- 13. Làm thế nào để bảo vệ một thẩm phán trực tuyến chống lại mã độc hại?
- 14. DropBox bảo vệ mã python của nó như thế nào?
- 15. IIS7 - Mật khẩu bảo vệ máy chủ phát triển
- 16. Bảo vệ dữ liệu iOS hoạt động như thế nào
- 17. bảo vệ mã node.js
- 18. ghi đè nội bộ được bảo vệ bằng bảo vệ!
- 19. Làm thế nào để ẩn một thủ tục được bảo vệ của một đối tượng?
- 20. Làm thế nào để bảo vệ quyền truy cập tệp bằng lệnh "install directory" của cmake?
- 21. Làm thế nào để bảo vệ ứng dụng của tôi chống lại vi phạm bản quyền
- 22. Làm thế nào để bảo vệ cơ sở dữ liệu SQLite khỏi tham nhũng
- 23. Làm thế nào để pushState bảo vệ chống lại các giả mạo nội dung tiềm năng?
- 24. Làm thế nào để giả lập các thành viên ảo được bảo vệ bằng Rhino.Mocks?
- 25. Làm thế nào để xây dựng một ví dụ bảo vệ rất cơ bản?
- 26. Cách bảo vệ "." char?
- 27. Làm thế nào để bảo vệ các biến lớp python từ một lập trình độc ác?
- 28. Làm thế nào để bảo vệ chống lại truy cập trực tiếp vào hình ảnh?
- 29. Làm thế nào để phát triển trình bảo vệ màn hình Linux
- 30. Làm thế nào để sử dụng StrongNameKeyPair với một mật khẩu bảo vệ keyfile (pfx)?
Đây có phải là dự án riêng tư không? Nếu không, họ không nhất thiết phải là cộng tác viên - họ có thể chia rẽ và sử dụng yêu cầu kéo (thực thi mức độ xem xét mã giả để hợp nhất các thay đổi) – Daenyth
Chức năng này không được hỗ trợ bởi github, nhưng nếu bạn đang tìm kiếm cho các giải pháp tương tự: Kho chứa Assembla hỗ trợ điều này: http://blog.assembla.com/assemblablog/tabid/12618/bid/96330/Put-Down-Your-Forks-Introducing-Protected-Branches.aspx Tự làm - tự lưu trữ git: http://git-scm.com/book/ch7-4.html Tự làm - tự lưu trữ thủy ngân: http://mercurial.selenic.com/wiki/AclExtension – Titas
Xem thêm http://stackoverflow.com/a/5097437/6309 – VonC