2012-09-28 78 views
4

我有一個master分支。和一個feature_swap分支。我想繼續同時在這兩個分支上工作。我在master上做了一些修改,然後提交。我想將master的一些算法更改應用到feature_swap分支,並查看該版本的工作原理。所以,我沒有git pull自動合併

git pull origin feature_swap 

,並得到這個消息

* branch   feature_swap -> FETCH_HEAD 
Auto-merging collator.h 
Merge made by recursive. 

我不想合併。相反,我只是想將我在master上應用的一些選定更改添加到feature_swap(可能是通過複製粘貼)。如果這符合我的期望,我會再次向那個分支提交這些更改。我再次想要平靜。

恐怕我的事還做了git push呢。我可以在git log中看到Merge branch 'feature_swap'。我現在需要做什麼來恢復國家?

回答

2

考慮到git pull的定義是git fetch && git merge,合併並非意外。

您可能想改爲執行git rebase master,它會將master中的提交重新應用到feature_swap。結合cherry-pick,您可以指定您想要的提交。

從遠程到fetch,只需使用git fetch這將從遠程下載提交,但不適用它們。

+0

would將這些變化推向上游?例如我會在我的bitbucket回購中看到這些骯髒作品的痕跡嗎? –

+1

直到你做一個'git push',在你的倉庫之外什麼也看不到。你可以自由地使用'rebase'來修改你的提交結構,只有當你推送時,它纔會被看到。 – Femaref

+0

另外'rebase master'說'當前分支主人是最新的。' –