簡體   English   中英

如何在合並提交之前 Git 以交互方式變基壓縮少量提交

[英]How to Git rebase interractively squash few commits before merge commit

我有一個要與 master 合並的功能分支。 在我這樣做之前,我想壓縮一些提交。

我已經從 master 合並到這個特性分支來解決沖突。 我要壓縮的提交在 master 的合並提交之前。

合並包含來自 master 的 180 個提交,處理沖突是一場巨大的斗爭,所以我想避免在變基時重做。

git的日志是這樣的:

A  
|  
B (merge commit)  
|  
C (22 commits from master)  
|  
X  
|  
Y  
|  
Z  
|  
D (coming from master)  
|
E (coming from master)  
|  
F (coming from master)  
|  
...  
... (more 155 commits from master)  
...  

我想將XY壓縮到Z上。 當我做

git rebase -i HEAD~6

它顯示了來自合並提交的 master 的所有提交,所以當我只想壓縮XY時,我需要再次解決沖突。

我怎樣才能防止這種情況發生?

嘗試添加-r | --rebase-merges -r | --rebase-merges到你的 rebase 命令:

git rebase -i -r HEAD~6

音序器腳本看起來會有所不同,您很快就會發現它描述了一種描述您希望如何重放合並的方法。

在您的情況下:您只想將XYZ在一起,您不必編輯合並部分。


git rebase (沒有-r )的默認行為是:

  1. 忽略合並提交
  2. 以線性方式重放所有列出的提交

這就是為什么你的沖突再次被觸發

暫無
暫無

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

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