2013-08-29 87 views
29

Tôi có một số kho lưu trữ riêng của Git trên tài khoản công ty GitHub và tôi không muốn bất kỳ ai thúc đẩy một số nhánh cụ thể (như chính, phát triển và beta hoặc theo mẫu). Tôi cũng đã cố gắng để xác định một số móc nhưng tôi muốn điều này được thực hiện trên GitHub và không được thực hiện với một móc đẩy trước trên các khách hàng.Vô hiệu hóa các nhánh cụ thể trên GitHub

Vì vậy, để giải thích vấn đề của tôi chỉ đơn giản, tôi muốn:

git push origin develop 

để bị từ chối bởi máy chủ (đó là GitHub) vì tên chi nhánh, nhưng tôi không muốn có một kiểm tra khách hàng bằng tiền -Push móc, tôi thực sự muốn GitHub để làm kiểm tra và từ chối nó.

Ngoài ra, nếu có thể chỉ cho phép một số người dùng nhất định làm như vậy, nhưng việc vô hiệu hóa nó cho mọi người sẽ là đủ lúc đầu.

+0

Tôi chưa tìm thấy câu trả lời rõ ràng cho câu hỏi này. – javadba

+0

@javadba, hãy xem kết thúc câu trả lời của riêng tôi, không thể có các quyền khác nhau cho các nhánh khác nhau trên GitHub kể từ hôm nay. – Huafu

Trả lời

24

Ok tôi đã nhận được câu trả lời từ IRC sau một cuộc trò chuyện dài. Tôi sẽ phải làm việc với các nhánh và kéo các yêu cầu, hoặc thêm các móc trước khi đẩy trên mỗi máy của dev vì GitHub không cho phép mỗi quyền nhánh không được xuất bản các móc hủy bỏ. Đây là một phần của câu trả lời tôi nhận được:

Ngắt kho. sau đó nhà phát triển có thể làm việc trên phiên bản kho lưu trữ của riêng họ và không phải lo lắng về việc cam kết với chi nhánh sai. Và sau đó một ai đó thượng nguồn luôn có thể hợp nhất vào bất kỳ nhánh nào cần được cam kết.

Ừ nhưng chúng tôi là một công ty và chúng tôi không muốn rằng tất cả các nhà phát triển của chúng tôi có dĩa

Tại sao không?

Vâng, họ sẽ có thể đẩy chi nhánh của họ trên một repo chung để làm việc với một số nhà phát triển khác trên cùng một tính năng chẳng hạn.

Đọc qua https://help.github.com/articles/using-pull-requests. Bạn vẫn có thể gửi các bản vá lỗi xung quanh giữa nhiều nhánh. Đây là mô hình mà git được xây dựng trên

Tôi biết nhưng tôi muốn để có thể nhìn thấy một cách nhanh chóng một cách trung tâm công việc thực tế trên bất kỳ tính năng/hotfix, ...

Để cắt một câu chuyện dài ngắn: GitHub không hỗ trợ quyền theo từng chi nhánh

+0

Bitbucket cũng có * Quyền Chi nhánh * bây giờ – TheVillageIdiot

4

Các móc bạn đang tìm kiếm là pre-receiveupdate - giá trị cũ được chạy một lần cho mỗi lần đẩy, sau đó một lần cho mỗi nhánh trên mỗi lần đẩy; nhưng quan trọng, đây là những móc trên máy chủ .

+0

Có cảm ơn bạn nhưng tôi nên cắm cái móc này vào cái gì, ý tôi là, có rất nhiều plugin và tôi không biết cái nào để sử dụng. Hay tôi đã đi sai trang? (và tôi đoán tôi sẽ phải sử dụng bản cập nhật trong trường hợp một cú đẩy được thực hiện trên nhiều chi nhánh) – Huafu

+0

Các tập lệnh được chuyển thông qua việc đẩy quảng cáo. Bạn có thể gọi 'git rev-list --pretty = format' để nhận email/tên - kiểm tra trợ giúp cho danh sách rev cho định dạng. –

+0

Ngoài ra, bạn có thể muốn cân nhắc trước khi nhận - nếu người dùng cố gắng đẩy tới chi nhánh mà anh ta được phép và quá một người anh ấy không cùng lúc, bạn có chấp nhận hoặc từ chối không? –

7

Tôi biết rằng bài đăng này khá cũ, nhưng tôi tin rằng nó vẫn có thể giúp ích cho một số bạn đang tìm kiếm câu trả lời.

Vâng, giờ đây bạn có thể sử dụng GitHub.
Gần đây GitHub đã giới thiệu tính năng Protected Branches, mà làm cho nó có thể:

chi nhánh bảo vệ chặn một số tính năng của Git trên một chi nhánh mà một quản trị kho chọn để bảo vệ. Chi nhánh bảo vệ:

  • Không thể lực đẩy
  • Không thể xóa
  • Không thể có những thay đổi sáp nhập vào nó cho đến khi kiểm tra tình trạng cần vượt qua
  • Không thể có những thay đổi sáp nhập vào nó cho đến khi đánh giá cần được phê duyệt
  • không thể được chỉnh sửa hoặc có file tải lên nó từ trang web

Chúc may mắn.

+3

Cảm ơn nhưng các chi nhánh được bảo vệ luôn ở đó một thời gian, và người dân vẫn có thể đẩy nó. Họ không thể ép buộc, nhưng họ có thể đẩy: -/ – Huafu

+0

Tôi vừa thử nghiệm nó, và khi bạn kích hoạt các nhánh được bảo vệ, bạn không thể đẩy trực tiếp vào nhánh này nữa, chỉ thông qua pull-request. Bạn cũng có thể yêu cầu quản trị viên hành xử theo cùng một cách. –

+0

Tôi có chủ và phát triển được bảo vệ, và cho đến hôm qua tôi vẫn có thể tiếp tục trực tiếp. Tôi sẽ kiểm tra lại cấu hình khi trên máy tính của tôi. Cảm ơn! – Huafu