簡體   English   中英

防止git merge到master分支

[英]preventing git merge to master branch

我正在使用分支來創建和部署out平台的自定義實例。 這些實例通常從“主”分支開始,在某種程度上進行定制,部署到測試和生產中,最后歸檔。

如果將新功能或錯誤修復添加到主服務器中,我希望能夠將它們提取/合並到我的項目實例(分支)中,但我幾乎不想將更改從分支合並到主服務器。 最近這種情況發生了錯誤,並造成了一些嚴重的問題。 更新存儲庫的git pull將所有內容合並到主分支中,然后被推回到主repo中。

是否有任何簡單的方法可以禁止合並回主人? 或者至少需要一些--force標志?

您可以通過禁止任何人推送主分支來確保不與其他分支合並到主服務器。 有權威的人可以做到這一點。 Gitolite允許您精細調整對分支的訪問。 除非您是特定用戶,否則您還可以編寫自己的服務器端掛鈎並拒絕更新主分支。

Git非常樂意使用多個遠程存儲庫。

我建議為每個自定義實例使用一個遠程存儲庫。 這不會改變您的工作流程,因為Git可以將任意兩個分支合並在一起,而不管其來源如何。

要使用“主遙控器”中的錯誤修復程序更新“自定義實例”,您需要鍵入類似的內容

git checkout <custom-branch>
git fetch main
git merge main/master

main是您稱為master的遠程存儲庫(我更改了名稱以避免分支和遠程之間的混淆)

對於本地分支, 請不要main指定為遠程跟蹤分支,而是指定特定於實例的遠程分支。 即每個自定義實例一個遠程存儲庫。

要將更改推送到自定義實例,請使用

git push

在極少數情況下,您需要將更改上游推送到“主”分支使用

git push main

如果你只是想避免合並到master中,你可以使用pre-merge hook來禁止它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM