在 git 的 master 分支中追溯构建发布历史

Retrospectively build a release history in the master branch in git

我正在尝试将 git 流程的原则追溯应用到我的存储库中。

我的所有发布都已标记,我想

  1. 创建一个新的主分支
  2. 将每个标记的版本作为压缩提交合并到新的主分支中。

结果是一个主分支,其历史记录仅包含版本。

我尝试执行上述操作,第一次合并按预期进行。差异确认我的主分支与标记的版本相同。第二个提交似乎正确合并,但是与相应标记的发布提交的差异揭示了许多差异。

  1. 什么可以解释标记的发布合并导致不同的提交?

  2. 如何确保合并的结果与标记的发布提交完全相同?

谢谢

当合并对应于不同标签的两个发布分支导致树不是其中一个标签的精确副本时,这并不奇怪,因为它恰好是 merge,结果取决于导致两个标签的历史记录。

所以我猜你的问题相当于需要命令

git merge -s theirs branch-of-release

不存在,如Git的doc of git merge:

中所述

[…] note that, unlike ours, there is no theirs merge strategy […]

尽管如此,我在 SO 上找到了以下可能对您的用例有用的答案:git command for making one branch like another.