我有一個感覺好像是很多人的共同問題的問題。但是,我無法找到我的問題的任何答案。Git的工作流程流 - 與分行的權限衝突的修補程序
我正在使用GIT中流動的工作流(未用git流)一到位桶庫。但是,使用分支權限時,我目前遇到了一些工作流問題。我有以下分支命名約定:
master
develop
hotfix/...
release/...
feature/...
我已經配置我的寫訪問資源庫,對分支機構master
和develop
,只有通過拉請求。對於所有其他分支機構提供完全許可,即任何人都可以向他們推送代碼。
我的問題可以通過以下動作序列來解釋。
- 一個釋放做了一個前一陣子。它合併爲
origin/master
和origin/develop
。 - 繼續開發;
feature
通過拉取請求創建分支並將其合併到origin/develop
。 - 實時代碼(
origin/master
)中確定了一個嚴重的錯誤。 - 一個
hotfix
分支,從master
創建,讓我們稱之爲hotfix/some-hotfix
。 bug是固定的,並且
hotfix/some-hotfix
分支被推到存儲庫。我們現在也有一個遠程分支origin/hotfix/some-hotfix
。在這個階段,我們有:origin/develop
是origin/master
頭由若干提交的(取決於開發進展如何)。origin/hotfix/some-hotfix
是主人的頭(通過修正錯誤的承諾)。
pull請求被創建以合併成
origin/hotfix/some-hotfix
origin/master
。這將工作正常,因爲origin/hotfix/some-hotfix
從origin/master
創建。
注:拉入請求並不一定解決,即origin/hotfix/some-hotfix
沒有合併到origin/master
。
- 創建拉取請求以將
origin/hotfix/some-hotfix
合併爲origin/develop
。這在很多情況下會導致衝突;已經對兩個分支進行了改變。
我無法合併origin/develop
爲origin/hotfix/some-hotfix
,因爲這個部門是爲了我合併爲origin/master
。在完成最終拉取請求之前,任何推送到修補程序分支的更改都將在主服務器中結束。爲開發所做的更改可能會破壞主人。
一種解決方案是,我可以非常小心,確保任何引入請求掌握開始處理引入請求開發之前完成。在我看來,這並不理想。這是冒險的(如果我忘記了)並且阻礙了進一步的開發(沒有人可以開始在完成master之前完成hotfix的開發請求):
我覺得這會是一個常見問題流程。
Questsion
基於上述
- 難道我解釋的方式是錯誤的混帳流工作流程?
- 你們是怎麼做到的?
- 我該如何解決這個問題,或者完全避免它?
在此先感謝
後,您必須解決
develop
分支中的衝突好吧,如果我理解正確,我會將本地'hotfix/some-hotfix'推送到遠程'origin/hotfix/some-hotfix' 。然後,我將創建一個合併遠程分支「origin/hotfix/some-hotifx」到遠程分支「origin/master」的pull請求,批准pull請求(合併它)。我從遠程分支'origin/master'和'origin/develop'提取最新的更改。然後我可以將'master'合併到'develop'中。但是,我沒有權限推動'develop'。我必須創建一個拉請求。但是,我怎麼能從我的本地分支'develop'進入我的遠程分支'origin/develop'? –有沒有辦法讓我的本地分支'develop'進入我的遠程分支'origin/develop'的請求? –
我不認爲有一種方法可以使用相同的基本分支進行公關。你可以做的一件事是從'develop'創建一個分支,將'master'合併到該分支中,並使用這個新創建的分支將PR合併到'develop'中。合併該新創建的分支後進行拉動。 –