从原始分支恢复特定提交是否会影响集成分支



我有一个名为devbranch的分支和一个master的分支。如果我从devbranchmaster分支中选择了一个提交XYZ,然后从devbranch恢复或重置XYZ提交,那么恢复或重置会影响、恢复或停止从master分支提交XYZ吗?

快速回顾一些关键概念:

  • git存储库由提交组成
  • 每个提交都包含所有文件的快照,以及一些元数据,其中包括指向提交的零个或多个(但通常是一个或两个(链接
  • 通过从已知的提交到其父级的反向来检查历史
  • 分支只是一个指向提交的指针,为您提供了一个可以向后查看历史的地方

现在有一些细节:

  • git cherry-pick查看提交,将其与其父项进行比较,然后在其他地方复制相同的更改作为新提交。新提交与原始提交没有任何关联
  • git revert做了同样的事情;相反地":它将提交与其父级进行比较,然后应用与该更改相对的。同样,它创建了一个全新的提交,与原始提交无关

所以,回到你的问题:

  • 您有两个独立的提交-原始提交,"XYZ";你在";devbranch";;以及当您选择"em"时创建的不同的提交;主">
  • 当您运行git revert时,您将创建第三个提交,撤消对";XYZ">

作为一种替代方案,您可以"重写历史";,这实际上意味着创造一个新的历史(我喜欢把它想象成进入一个平行宇宙(。例如,您可以使用";交互式重新基准";重播所有提交,除了您想要";从历史中抹去";。

还原提交只会在当前分支上创建相反的提交。它不会影响其他分支。您还需要在master分支上恢复cherry-pick-commit,或者您可以从dev分支中恢复cherry pick-commit。结果是一样的,但这取决于你希望如何记录你的历史。

相关内容

  • 没有找到相关文章

最新更新