按照建议的deadbeef,我已经使用git rebase -i deadbeef~1成功地拆分了以前的提交in this question。我在我的development分支上做了这个。
据我所知,一切都很好,deadbeef已经从development的历史中消失了,取而代之的是我在重基时所做的提交。
现在出现两个问题:
deadbeef --我如何将重基“合并”到这些分支中?如果我在其中任何一个分支中做了git merge development,会发生什么?deadbeef也被推送到远程存储库中,并出现在其他几个克隆中。为了确保deadbeef真的从历史上消失了,我将不得不在所有其他开发机器上创建一个新的clone,对吗?(幸运的是,这相当容易,我可以访问所有其他克隆)。谢谢!
发布于 2014-08-03 14:59:05
1)你也必须重新建立其他分支机构。极有可能
git checkout other-branch
git rebase development会成功的。
更新:正如我们在评论中指出的,您可以这样做。
git rebase -i development并从提交重基列表中删除deadbeef。在此之后,提交的其余部分将干净地应用。
(B)除了这样做,还有另一种选择,更多的人工操作。就拿一个有死牛肉的树枝来说吧,你想要修改它,比如说它是foobar。创建一个新的tmp分支,从死牛肉之前的提交开始。然后樱桃-选择提交,你把死牛肉分成(从开发)。然后选择所有提交,从死牛肉(不包括)到分支的末尾(从foobar)。检查tmp是否正确,并将其重命名为foobar。
2)是的,您必须使用push -f并在其他开发机器上重新创建或重置分支。你可能只需要做(在其他机器上)
git fetch
git checkout development
git reset --hard origin/developmenthttps://stackoverflow.com/questions/25105886
复制相似问题