[英]git pull feature branch just after rebasing feature branch with master branch will revert rebase changes
[英]Merge after rebasing feature branch in git
我将origin / develop上的特征分支重新定义为当前开发状态的当前状态。
git checkout feature-X
git rebase origin/develop
但是当我这样做时,我必须立即合并。 这让事情变得混乱。
我认为变基的整个想法是你可以重写历史(假装我们正在处理起源/开发的顶端)并且只有当你想要将你的变化整合到origin / develop时才必须合并。
难道我做错了什么?
更新:我无法完全重现我所做的事情而没有更多的git魔法,但我正在尝试拼凑一个功能强大的功能分支模型,主要是关注这个要点 。
当我在我的功能分支时,我“git rebase origin / develop”。 这完成但后来告诉我,我已经大大偏离了我尝试通过推/拉来修复的东西。 这创造了我认为我不想要的合并。
假设feature-X
已经分支develop
,更好的方法是将更改从远程拉到本地develop
分支并从本地分支重新定义feature-X
。 这将避免合并提交。 您可以稍后将feature-X合并到本地develop
,然后将其推送。
如果feature-X被推到了遥控器上,正如@ crea1已经回答的那样,你将不得不在每次使用rebase的情况下运行它
git push -f origin feature-x
原因是rebase为重新提交的提交创建了全新的提交ID。 就git而言,它们是新的提交。 这就是导致你的git pull进行合并提交的原因。 只要没有人使用它,推力应该没问题。 另外恕我直言,如果你的gitconfig中的pull.rebase设置为true会更好。
如果您在origin / develop之上重新定义feature-x,则可以在本地repo上执行此操作。 这意味着feature-x
仍然处于远程存储库中的rebase之前的状态。 由于他们不再拥有相同的祖先,git会尝试合并。
要更新远程分支,您可以执行强制推送。
git push origin feature-x --force
但要注意,如果除了你以外的其他人正在使用feature-x
,并且开始推/拉它可能会变得混乱。
我发现这个链接对于学习合并与变基有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.