簡體   English   中英

在推動之后壓扁提交

[英]Squashing commits after they are pushed

想象一下帶有以下提交的git存儲庫:

Fixed issue 3               123eabc
Fixed issue 2 (part 2)      fa23b79
Fixed issue 2 (part 1)      7bea5cc
Fixed issue 1               0d229f4

這些都已經被推送到遠程主人。 現在有辦法重寫歷史並將中間兩個合並為一個提交嗎? 就像是

Fixed issue 3               123eabc
Fixed issue 2               9d23e0c
Fixed issue 1               0d229f4

一種選擇是進行交互式rebase,在其中將兩個問題2提交壓縮在一起。

git rebase -i HEAD~4

這告訴Git你想做一個涉及四個提交的交互式rebase,包括從你的分支的HEAD向后計數。 這應該顯示一個類似於以下內容的列表:

pick 0d229f4 Fixed issue 1
pick 7bea5cc Fixed issue 2 (part 1)
pick fa23b79 Fixed issue 2 (part 2)
pick 123eabc Fixed issue 3

請注意, 最早的提交首先出現, 最后的四個提交最后出現。

將要與第1部分組合的中間提交部分2的pick更改為squash

pick 0d229f4 Fixed issue 1
pick 7bea5cc Fixed issue 2 (part 1)
squash fa23b79 Fixed issue 2 (part 2)
pick 123eabc Fixed issue 3

壓縮意味着將標記為squash的提交組合到其上方的提交中,在這種情況下將第2部分合並到第1部分中。

然后保存此文件並退出編輯器,並完成rebase。

注意:重寫公共分支的歷史記錄可能會導致除您之外的任何人使用此分支時出現問題。 因此,如果這種情況適用於您,您可能希望避免使用此答案。

暫無
暫無

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

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