簡體   English   中英

壁球合並提交

[英]Squash merge commit

我在github上有pull請求,我將一些提交推送到了該請求。 它閑置了一段時間,現在有合並沖突。 因此,我將功能分支與master分支合並,解決了沖突並進行了推送。 現在,我要壓縮/刪除已創建的合並提交。 我嘗試了git rebase -i但是上一次提交和合並提交之間有一些提交。 任何幫助表示贊賞。

我認為您走在正確的軌道上,現在有2個選項。看圖片:

A1 — A2 — A3 — A4
 \
  F1 — F2 — F3

其中A1..A4是項目的主線,而F1..F3是您在PR中提交的功能分支。 但是由於沖突更改,現在F3無法輕松地與A4合並。

您可以創建合並提交F4:

A1 — A2 — A3 — A4
 \              \
  F1 — F2 — F3 — F4

然后將F4提交為PR。 在這種情況下,回購所有者可以使用F4並將其合並到主線,因此項目歷史記錄將如下所示:

A1 — A2 — A3 — A4 — A5 
 \              \ /
  F1 — F2 — F3 — F4

本質上,A5源樹將等於F4,在某些工作流程中,A5恰好是F4。

或者,您可以簽出F3( git checkout <feature_branch>; git reset --hard F3; ),然后使用git rebase -i A4在當前項目HEAD上重新應用功能分支中的更改。 您需要一一解決所有沖突,最后您將獲得以下提交結構:

A1 — A2 — A3 — A4
                 \
                  F1' — F2' — F3'

然后您可以使用git push -f ...強行更新存儲庫派生,然后重新更新PR。

暫無
暫無

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

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