Git pull 自动合并

12

我有一个master分支和一个feature_swap分支。我想继续在这两个分支上并行工作。我在master上进行了一些更改,然后提交。我想将master的一些算法更改应用到feature_swap分支上,并查看那个版本是如何工作的。所以我执行了以下操作:

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'。现在我需要做什么来恢复状态?

1个回答

11
考虑到 git pull 的定义是 git fetch && git merge,因此合并并不意外。
您可能希望使用 git rebase master,它会重新应用 master 中的提交到 feature_swap。结合使用 cherry-pick 您可以指定所需的提交。
要从远程 fetch,只需使用 git fetch 即可下载远程的提交,但不应用它们。

这会将这些更改推送到上游吗?例如,我是否会在我的Bitbucket存储库中看到这些脏工作的痕迹? - Dipro Sen
1
除非你执行 git push,否则你的仓库外面不会有任何东西可见。你可以自由使用 rebase 来修改你的提交结构,只有当你推送时才会被看到。 - Femaref
rebase master 也会显示 当前分支 master 已经是最新的了。 - Dipro Sen
你需要在你想要变基的分支中。 - Femaref
所以我执行了 git rebase feature_swap 命令,现在在 git log 中看不到那个“自动合并”的信息了。 - Dipro Sen
您可以按照以下步骤操作:首先,使用“git fetch”命令获取远程代码。然后将其合并到feature-swap分支中,命令为“git merge v1.0 --no-commit --no-ff”。现在,在feature-swap分支上进行所需的测试。如果满意,请继续提交。如果不满意,请使用“git --hard reset”命令(请注意保存分支上的任何文件,它将返回到拉取之前的状态)。 - Madhuchhanda Mandal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接