[英]Git: Merging only branch specific commits
為您提供我監視Git
存儲庫和分支的方式的背景知識;
我一直在監視從每個sprint開始的兩個分支-release和master。 Master
分支是開發人員從中創建新分支(特定於任務),實施其更改並創建合並到Master
拉取請求的地方。 Release
分支是特定於Sprint的,始終始終可提交給生產。 我們僅將提交給Master並由質量檢查機構驗證的分支合並到Release分支中。 說得通? 當您希望以固定的時間間隔提交發布並實現並驗證了特定功能時,這種方法最有效,因此您完全知道下一版本的發展。
直到我遇到以下問題,一切都很好。
Master
創建了任務特定的分支,即taskA
。 taskA
分支。 taskB
並對taskB進行了多次更改並將taskB合並到Master
。 taskA
分支中,並進一步執行他的任務! 現在,我只想將taskA
分支合並到Release分支,但是由於taskB
也已經合並到taskA
分支中,因此我將taskB分支更改自動更改為Release分支! 我不要 我知道我可以從taskA
挑選所有提交,這很煩人。
有人可以幫我什么是僅獲得task的最佳方法是,無論開發人員是否間歇性地合並了Master,分支都更改為Release。 我是否遵循錯誤的Git
練習?
在我看來,該開發商taskA
分支(讓我們稱他為開發者A)應重訂創建一個拉請求(或合並的話)之前,他的最新版本的分支。 開發人員A在合並或創建拉取請求之前應運行以下命令:
git rebase -i origin/Release
這將為他提供一個編輯器,在其中他可以設置他想要“選擇” /使用的提交應用於其分支的提交。 如果來自taskB
分支的任何提交最終都在他的分支中,則如果尚未准備好發布,他可以刪除taskB
的提交(只需刪除包含那些提交的行)。
這樣,在此期間在Release分支中發生的所有更改都將被提取並應用於他的taskA
分支。 然后,將再次在編輯器上應用在編輯器中選擇的開發人員A的所有提交。 這樣,時間軸仍然是正確的,並且不應存在任何沖突。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.