簡體   English   中英

Git 只合並一些提交

[英]Git only merging some commits

假設我有一個包含以下分支的 git 存儲庫:

  • 質量保證
  • 分期
  • 掌握

在 QA 分支上,我提交了已獲准發布的“A”,我也提交了尚未獲准發布的“B”。

有沒有辦法讓我只合並將“A”提交到暫存和母版,以便將未批准發布的更改排除在暫存/生產環境之外?

git merge命令的“對象”始終是提交。 (您通常說分支名稱的事實只是一個偶然的事實,因為分支恰好是提交的另一個名稱。)只是合並它。

在 QA 分支上,我提交了已獲准發布的“A”,我也提交了尚未獲准發布的“B”。 有沒有辦法讓我只合並將“A”提交到暫存和母版,以便將未批准發布的更改排除在暫存/生產環境之外?

您所要求的內容證明了使用分支管理發布的問題:您一次只能在 QA 中做一件事,而且它們往往會堆積起來。 如果您使用功能分支工作流使用標簽而不是分支進行 QA 和暫存,則可以避免很多復雜性。

現在,要在您當前的工作流程中修復它...

您可以從 B 建立一個功能分支,將 QA 移至 A,正常處理 QA(現在在 A),然后照常處理 B。

這是你的回購,大概。

Z - A - B [QA]
 \
  C - D [staging]
       \
        E - F [master]
  1. 在 B 上創建一個功能分支...
$ git branch feature/B B

      [feature/B]
Z - A - B [QA]
 \
  C - D [staging]
       \
        E - F [master]
  1. 將 QA 移回 A。
$ git checkout QA
$ git reset --hard A
$ git push --force-with-lease

      B [feature/B]
     /
Z - A [QA]
 \
  C - D [staging]
       \
        E - F [master]
  1. 正常發布 QA。
  2. 繼續開發該功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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