我将origin / develop上的特征分支重新设置为当前开发状态的当前状态。
git checkout feature-X
git rebase origin/develop
但是当我这样做时,我必须立即合并。这让事情变得混乱。
我认为变基的整个想法是你可以重写历史(假装我们正在处理起源/开发的尖端),只有当你想要将你的变化整合到origin / develop时才必须合并。
我做错了吗?
更新:如果没有更多git magic,我无法完全重现我所做的事情,但我正在尝试拼凑一个功能正常的功能分支模型,主要是this gist。< / p>
当我进入我的功能分支时,我“git rebase origin / develop”。这完成但后来告诉我,我已经大大偏离了我尝试通过推/拉来修复的东西。这创造了我认为我不想要的合并。
答案 0 :(得分:10)
假设feature-X
已经分支develop
,更好的方法是将更改从远程拉到您的本地develop
分支,然后从feature-X
重新定位develop
当地分公司。这将避免合并提交。您可以稍后将功能-X合并到本地git push -f origin feature-x
,然后将其推送。
如果feature-X被推到了遥控器上,正如@ crea1已经回答的那样,你必须使用开发的每个rebase来运行它
.parallax > div .txparallax {
width: 100%;
padding-right: 150px;
display: inline-block;
position: relative;
left:0px;
}
.parallax > div .txparallax:hover{
left:400px;
-moz-transition: 0.5s all ease;
-o-transition: 0.5s all ease;
-webkit-transition: 0.5s all ease;
transition: 0.5s all ease;
}
原因是rebase为重新提交的提交创建了全新的提交ID。就git而言,它们是新的提交。这就是导致你的git pull进行合并提交的原因。只要没有人使用它,推力应该没问题。 另外恕我直言,如果你的gitconfig中你的pull.rebase设置为true会更好。
答案 1 :(得分:2)
如果您在origin / develop之上修改feature-x,则可以在本地仓库中执行此操作。这意味着feature-x
仍然处于远程存储库中的rebase之前的状态。由于他们不再拥有相同的祖先,git会尝试合并。
要更新远程分支,您可以执行强制推送。
git push origin feature-x --force
但要注意,如果除了你以外的其他人feature-x
,并且开始推/拉它可能会变得混乱。
我发现此链接对于了解merging vs rebasing
非常有用