在工作中,我們使用develop
分支進行日常工作 - 新功能,錯誤修復等。當我們準備發佈時,我們將devleop分支合併到master,tag和release中。針對修補程序和修補程序等發佈分支的Git rebase
如果我們需要做一個需要立即發佈的修補程序,我們創建一個關閉master
的分支,應用更改並進行相應合併(包括將master
合併回develop
)。到目前爲止,我所描述的沒有任何問題。
我剛剛正在研究一個小錯誤修復程序,該錯誤修復程序將包含在下一個版本中。所以創建了我的平常分支develop
,做了幾個提交,並提交了一個PR。然後,一位經理希望今天的修復成爲修補程序。好的 - 簡單的說,我只是將我的工作與master
重新分配,並打開PR反對主人。但是,運行git rebase master
沒有針對主服務器上的當前HEAD提交重放我的工作。相反,git告訴我,一切都是「最新的」。然後我打開PR反對主人,我的PR包含所有新工作從develop
分支,不只是我的錯誤修復。
我能夠做一個交互式重新分配和放棄所有不應該在那裏的提交,但這似乎有點乏味和容易出錯。有沒有一種更理智的方式來實現重新分配針對較舊的最新分支的目標?
你的小分支上有多少次提交?如果只有一些我可能會嘗試「git checkout hotfix; git cherry-pick develop ... my-branch」。 –
幸運的是,當我們在本週早些時候發佈的時候,這只是我不得不放棄的一些提交,但這個問題的關鍵是不需要知道提交或歷史記錄等等。我希望我的工作基於另一個分支,不管它是1次還是100次。 –