如何从git-from历史中的主分支中撤消合并或重定基础的分支



假设我创建了一个feature-x分支,并与master分支合并或重新建立了基础。现在,将来是否可以通过git删除我通过feature-x分支添加的所有更改?

这是一个常见的功能,我们在有限的时间内添加一些更新,然后将其删除。如果git有可能的话,有人能帮忙吗。

提前谢谢。

通过一个例子,我会变得更加清晰。假设我在feature-x分支中添加了一个轮询脚本,并用我用作生产分支的master分支重新建立它的基础。我可能只使用投票脚本一个月。在此期间,我进行了几次提交,用master分支重新建立了新分支的基础。现在1个月后,我想从master分支中完全删除该轮询脚本,但将所有新更改(新提交)保留在master分支中。

man git-revert

git revert将反向重放提交。

您可以使用git revert来撤消提交。这将创建一个新的提交,基本上撤消旧提交的更改。或者,您可以使用git-rebase从历史记录中删除提交。然而,这不应该在共享存储库上进行,因为它会重写历史记录,所以如果有人在重写之前签出并现在退出,他/她很可能会遇到可怕的合并冲突

是否可以将特性分支作为生产代码,而不是将特性分支合并/重新定基到master中,并在必要时将master合并到其中?然后,当您完成特性分支时,返回使用master作为生产代码。

如果我正确理解git rebase,它不会存储任何关于这两个分支的共同祖先的信息,所以很难再次将两者分离。我不能评论使用git revert来撤消合并提交,只能说它听起来不错。

要获得开箱即用的工作流程,请参阅此处:

https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

构建候选版本并不断使用重读将帮助您实现这一目标。

现在创建一个新分支并重做以前的合并会更容易,去掉不需要的分支。您可能需要重新设置其中一些的基数。现在要"拯救"主分支似乎太费力了。

最新更新