- 我們制定不同的主題分支的特徵。
- 在發佈之前,我們將所有主題分支合併爲
master
。然後在該分支上開始持續集成 - 此外,我們還直接在主分支上進行小的更改(拼寫錯誤等)
- 如果一切正常,我們將主分支中的所有更改合併到分支分支中。然後將發佈此分支分支
只要我們的測試沒有任何問題,此工作流程就沒有問題。但是,只要我們決定不向主人發佈一個功能,我們就會遇到麻煩。
例如:
- 我們有不同的特性5個特性分支
- 我們將它們合併全部納入
master
- 除此之外,我們直接在主機(2個)不同的提交(我們修正了一些拼寫錯誤)
- 現在我們發現,5個功能中有1個未按預期工作,我們無法發貨
- 我們仍然希望將其他4個功能(+ 2個提交在主站)提出
我們現在唯一的選擇是: - 合併4個主題分支直接進入發行 - 櫻桃挑高手2個提交到發佈
這可以是相當惱人特別是當我們沒有跟蹤直接對主人做出的提交,並且數量增加。
我想有我們能夠一個場景:
- 看到所有的提交(或更好:合併分支)
- 拋棄一切,我們不希望有在變化下一個版本
- 合併其他所有更改爲釋放
我已經做了一些研究,跑進git rebase
。 git rebase --interactive
非常接近我的預期。
最好的情況是:
- 底墊中,從主的所有更改釋放交互式
- 刪除我不需要
- 釋放所有提交(或更好的分支機構)只改變我要
問題但是是:
當我這樣做:
git checkout master
git rebase --interactive release
<changes>
我最終修改主分支而不是釋放分支。添加--onto release
選項也沒有幫助。
是否有可能在另一個分支上提交rebase的結果?
問候 雷夫
你能舉一個更具體的例子嗎?你的情況很混亂。 – fge 2011-12-20 11:41:34
我改了一些措辭,並增加了一個例子,希望它更容易理解 – leifg 2011-12-20 11:58:38
你不應該反過來嗎? 'git chechout release''git rebase -i master' ... – number5 2011-12-20 13:31:10