我有master和hotfix_master分支。這些是發布分支,在專案設定下的 Gitlab UI 中受到保護。
我想要實作的是,hotfix_master在每次生產發布后重新設定分支,master這樣如果客戶提出任何錯誤,我們可以在hotfix_master分支上修復該錯誤并發布給客戶。
在進行概念驗證時,我意識到即使hotfix_master分支受到保護,我仍然可以在不創建任何 PR 的情況下進行變基。這是預期的嗎?如果是,保護有什么用?應該怎么做才能在創建 PR 后才允許 rebase?
編輯 1
這就是我正在做的
- git fetch
- git checkout hotfix_master
- git diff --name-only origin/hotfix_master...origin/master
- git rebase origin/master
- git status
- git push
重新定位后,我看到的是,從master現在開始的所有更改hotfix_master。那么,PR 的問題在哪里?為什么 gitlab 沒有抱怨你沒有提高 PR 。請建議
編輯 2

uj5u.com熱心網友回復:
“分支保護”是 GitLab 和 GitHub 的一個特性。它保護共享存盤庫中的分支不被強制推送,可能會丟失歷史記錄。
當您擁有本地克隆時,您可以對本地分支執行任何您喜歡的操作(創建它們、重置它們、合并它們、重新設定它們的基礎、創建提交等),但是您只能對“受保護的分支”執行快進推送分支)。
uj5u.com熱心網友回復:
在這個設定中,如果 hotfix_master 提交了 master 沒有的提交,推送(EDIT 1 中的最后一個命令)應該會因為分支保護而失敗。
如果您希望拒絕正常推送(不允許更改歷史記錄),則必須將保護設定(編輯 2)“允許推送”更改為更高級別,拒絕任何不應該執行您演示的操作的人在編輯 1 中。
除此之外:假設 master 是當前正在生產的代碼,您通常會將 master 合并到其他分支以保留分支之間的提交歷史記錄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389536.html
標籤:混帐 GitLab git-rebase
