【发布时间】:2020-12-23 22:40:30
【问题描述】:
我有一个 release 分支,由于在过去 9 个月左右的时间里对代码进行了彻底的修改,它与 master 中的分支相比有了很大的发展。
因为release与master有很大的分歧,所以在创建一个PR到master时会有很多冲突。 master 的当前内容现在基本上是无关紧要的,因为我已经在 release 分支上工作了很长时间。我想将 master 重置为初始提交(这只是使用 .gitignore 文件进行的 repo 初始化),同时保持相同的历史记录(除了额外的还原提交)。
我在取自 master 的 master-backup 分支上尝试了以下操作,然后在运行命令后尝试将发布分支 PR 到此 master-backup 分支:
git reset --hard <initial commit id> - 这会重置历史记录
git revert <INITIAL COMMIT ID>^..<LATEST COMMIT ID> - 这有相同的冲突,并不能完全正确地将所有文件从发布版推送到主控版。
我不知道现在还能做什么。我的最终目标是用release 替换master 的内容,同时保持master 的当前历史记录,添加可能的还原提交,当然还有从release 到master 的合并。
非常感谢任何帮助。
【问题讨论】:
-
没有理由将
master重置为任何内容。在合并期间接受来自release的所有更改。比如:stackoverflow.com/a/25751748/1265393 -
这是我怀疑应该发生的事情,但其中一些更改包括文件的完整重组。公关/合并到
master时,旧文件仍然存在。