2012-09-28 77 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'说'当前分支主人是最新的。' –