我对merge
或rebase
感到困惑。
在master中,在 A 点,我创建了一个分支mybranch
,结帐,并开始纯粹地处理它,而其他人继续在master
上工作。
已经有一段时间了。今天,我发现master
已达到 B 点,我仍然无法完成mybranch
中的部分。
但是,我希望所有更改master
最多包含 B ,但我不希望将mybranch
中的任何代码添加到master
中{1}}。
然后我做的是
git rebase mybranch
是的,mybranch
包含了来自 A 和 B 之间的所有更改,但我发现master
也有更改我在mybranch
中制作。
现在似乎master
和mybranch
现在完全相同。
我认为rebase target
意味着将当前位置放入target
,即仅基于mybranch
重新定义master
,但为什么它是双向的?
如何实现我的最初目标?
答案 0 :(得分:4)
要实现原始目标,您需要更换分支。
git checkout mybranch
git rebase master
有效地与:
相同git rebase master mybranch
这意味着您的 mybranch 将被添加到 master ,同时保持 master 不变。
通常rebase
永远不会影响目标分支。你可能会做别的事。
另外,您可以使用merge
:
git checkout mybranch
git merge master
这将在 mybranch 上创建一个合并提交,是一个非常可行的选择。