2013-09-26 31 views
1

我覺得必須有這樣一個簡單的答案...Git的變基 - 合併更改並應用它們放在一起

我可以得到一個分支改變的聚結差異。 git diff somecommit..latestcommit。很簡單。

我可以將分支重定位到不同的分支上。 git rebase -i updatedbranch rebasedbranch。簡單。

使用交互模式,我甚至可以把它壓縮成一個提交。

但我不能同時發生這兩種情況。我無法獲得合併的差異用於轉化。它想要逐一應用每一個提交。其中有50個,每次我通過git mergetool並做出相同的選擇,連續50次。合併的差異大約是2500行。我們在這裏談論很多工作。必須有一個更簡單的方法。

我在做什麼:在一個分支上的兩次提交(如git diff a..b)之間得到合併的更改並在其他分支上重播這些更改。

任何幫助表示讚賞。

回答

2

TIL:git apply。說真的,git是一個無底洞的功能。

對於其他人:

git diff a..b > ab.diff 
git checkout otherbranch 
git apply ab.diff 

容易。

+0

[Squash-merge](http://stackoverflow.com/questions/5308816/how-to-use-git-merge-squash)可能會更輕鬆一些;特別是那些害怕補丁和'git apply'的人;) –