我有一個託管在GitHub上的存儲庫,它有幾個分支。如何在GitHub的存儲庫上設置receive.denyNonFastForwards
我如何設置主倉庫的配置設置receive.denyNonFastForwards
標誌,以便在主存儲庫只能接受推送這是快進,將拒絕任何非快進,即使他們--forced
我有一個託管在GitHub上的存儲庫,它有幾個分支。如何在GitHub的存儲庫上設置receive.denyNonFastForwards
我如何設置主倉庫的配置設置receive.denyNonFastForwards
標誌,以便在主存儲庫只能接受推送這是快進,將拒絕任何非快進,即使他們--forced
的GitHub不公開此功能,但有兩種選擇:
GitHub支持可以在存儲庫上設置此功能。
您可以通過將GitHub存儲庫設置爲您有更多控制權的另一個存儲庫的鏡像來模擬此操作。只允許一小部分負責人和一個用於執行鏡像的帳戶向GitHub帳戶提供寫入權限。非GitHub存儲庫將設置爲receive.denyNonFastForwards
,並讓每個人都推送。鏡像可以通過post-receive
掛鉤,cron作業或兩者的組合完成。與兩者兼容的原因是爲了在兩個存儲庫之間獲得最小的時間延遲,並且即使post-receive
掛鉤無法更新GitHub(例如,如果GitHub已關閉),仍然確保所有內容都是最新的。
Github企業版現在具有disabling force pushes的功能。對於不使用企業版的人員,您可以configure a pre-push hook。
這是一個很好的做法,絕不強制推動主人,除非絕對必要。
雖然這看起來是正確的,但我可以讓GitHub代表我們通過聯繫他們的支持團隊並要求完成這件事來設置它。 –
很高興知道。我會修改提到GitHub支持的答案。 –