所以我創建了一個分支關閉另一個分支,我已經創建,現在當我嘗試合併分支到主人,我遇到了必須合併兩個分支的情況。意外地分支了錯誤的分支,當我想合併到主人我必須合併兩個分支
這裏是一個圖
主 - >
->Branch 1 -> Branch 2
我希望能夠合併只是在分支2到主站的更改,而無需如果合理,合併分支1上的更改。我看着重置和恢復,但似乎這些東西將刪除我所做的與分支2的所有更改。任何想法?
感謝
所以我創建了一個分支關閉另一個分支,我已經創建,現在當我嘗試合併分支到主人,我遇到了必須合併兩個分支的情況。意外地分支了錯誤的分支,當我想合併到主人我必須合併兩個分支
這裏是一個圖
主 - >
->Branch 1 -> Branch 2
我希望能夠合併只是在分支2到主站的更改,而無需如果合理,合併分支1上的更改。我看着重置和恢復,但似乎這些東西將刪除我所做的與分支2的所有更改。任何想法?
感謝
一種方式做到這一點,則使用cherry-pick
。做一個git log branch2
並找到提交ID你想要的,然後切換到使用git checkout master
master
分支然後用git cherry-pick <commit_id>
請參閱這篇文章瞭解更多詳情
嘗試git的變基--onto具有以下語法:
要使BRANCH2的變化上主,而不包括BRANCH1的
git rebase --onto master branch1 branch2
從git help rebase
相關的輸出:
Here is how you would transplant a topic branch based on one branch to another, to pretend that you forked the topic branch from the latter branch, using rebase --onto.
First let’s assume your topic is based on branch next. For example, a feature developed in topic depends on some functionality which is found in next.
o---o---o---o---o master
\
o---o---o---o---o next
\
o---o---o topic
We want to make topic forked from branch master; for example, because the functionality on which topic depends was merged into the more stable
master branch. We want our tree to look like this:
o---o---o---o---o master
| \
| o'--o'--o' topic
\
o---o---o---o---o next
We can get this using the following command:
git rebase --onto master next topic
牢記風險和重訂基期的陷阱,這裏提到: http://git-scm.com/book/en/Git-Branching-Rebasing
的Git或SVN .... –
假設你的意思'git',你想要'git rebase --onto'。 –