git恢复了一个复杂(合并,恢复,合并,..)情况的合并



我从主分支开始与其他几个开发人员一起开始,我们正在遵循一个不错的工作流程,在其中创建一个新问题的分支,将其合并回开发,然后在几个功能合并后,开发到主。

有时我们还会在大师中进行hotfixs,但随后将大师合并为开发以避免将来合并冲突。

问题

在某个时候,我合并了大师以开发开发,但是在解决合并冲突的同时,我删除了在开发中完成的一些代码。现在我们意识到了创建的问题,因此现在我们需要撤消该特定合并。

所以,让我与您分享一些信息。

Master

  • hotfix-1
  • hotfix-2
  • hotfix-3
  • 合并开发
  • 恢复合并开发

当前状态:确定

开发

  • 从主人开始
  • 工作
  • 工作b
  • 从test_1
  • 合并工作
  • 从test_2
  • 合并工作
  • 将主人合并为发展
  • 工作C
  • 工作D
  • 工作E

如果您按时间顺序关注,大师的最后2个提交是最新的更改。

我希望

我希望有一个可以恢复合并的选择,因为我完全空白。

选项:

  1. 我尝试恢复,但事实证明您无法恢复合并提交
  2. 我认为我可以在合并之前从提交中创建一个新的分支,然后在合并后重新播放更改,然后将新分支合并回开发。这可能吗 ?它可以让我继续我们的工作流程吗?

一个重要的一点是,我可能没有得到完整的图片,因为我只是读到合并两个分支共享历史记录后,当我去Bitbucket中提交哈希时,我会在所有提交中看到主人。我猜想已将其转移到主人。

任何帮助或见解都会有所帮助。谢谢。

您的方向正确。git是单向路径,没有办法退后一步。

您可以使用您指定的第二个选项。您必须在Marge提交之前创建一个分支。然后在此分支中合并主人。之后,您应该删除开发分支并重命名此新创建的分支。

另一种方法是您可以从Master创建一个新的分支,然后挑选更改(您还可以合并为功能/错误而不是进行樱桃挑选的分支(,然后再次拥有一个开发,删除开发并重命名新创建的分支为开发的备份。

我建议使用git rebase进行这种合并以进行更好,清洁的历史https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase。

最新更新