簡體   English   中英

Git:僅合並分支特定的提交

[英]Git: Merging only branch specific commits

為您提供我監視Git存儲庫和分支的方式的背景知識;

我一直在監視從每個sprint開始的兩個分支-release和master。 Master分支是開發人員從中創建新分支(特定於任務),實施其更改並創建合並到Master拉取請求的地方。 Release分支是特定於Sprint的,始終始終可提交給生產。 我們僅將提交給Master並由質量檢查機構驗證的分支合並到Release分支中。 說得通? 當您希望以固定的時間間隔提交發布並實現並驗證了特定功能時,這種方法最有效,因此您完全知道下一版本的發展。

直到我遇到以下問題,一切都很好。

  1. DeveloperA已從Master創建了任務特定的分支,即taskA
  2. 他多次致力於taskA分支。
  3. 這意味着,當其他開發人員B從Master創建他的分支taskB並對taskB進行了多次更改並將taskB合並到Master
  4. DeveloperA將把Master合並到taskA分支中,並進一步執行他的任務!
  5. 最終,他將把taskA分支合並到Master中。

現在,我只想將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM