2016-02-29 89 views
0

通常我的Git工作流程如下所示:Git Rebasing Branch Commits,當它已經分開合併分支提交它?

git add --all 
git commit 
git push -u origin branch/name 
git merge master 

在這裏,我做更多的變化,並重覆上述。

當我在看我的提交歷史的分支,我不僅對我的分支,而且從通過主體合併提交信息。我希望能夠爲我的分支進行重組和壓縮提交。所以最後的10個提交將是我的分支特定的提交,並且沒有從合併到我的分支的所有其他提交。我不介意Git是否向我提交了來自另一個分支的合併提交,這是另一個提交,表示合併爲空白,但我沒有看到。

是否有一個常見的解決方案?我一直無法找到任何東西。

回答

1

你似乎在標題中回答了你自己的問題,但避免出現合併提交的一種方法是rebase你的本地分支在遠程master上。您的工作流程改成這樣:

git add --all 
git commit -m 'Now I'm rebasing...woohoo' 
git rebase origin/master 

# resolve merge conflicts, which may occur at the replay of each commit 

git push --force -u branch/name 

評論:

命令git rebase origin/master將重訂當地的分支機構(涉及master它可以是任何東西)上的遠程master。由於您本地分支中的每個提交都會重播,因此您可能會遇到合併衝突。解決衝突後,您可以通過輸入git rebase --continue繼續重新綁定。

命令git push --force -u branch/name覆蓋遠程存在的本地分支的版本。這是因爲需要,在做底墊上master的過程中,你居然改寫您的分支的歷史。