1

我正在尝试在我们的开发过程中应用 gitflow 方法,理论上我喜欢它。但是有一点是任何地方都没有涵盖的...

每个人都将他们的结果推向develop分支。在计划中,我们有 10 个问题应该完成并发布到测试版,然后发布到生产环境。10 个问题中的 2 个没有最终修复,但部分已经在开发分支中,因为开发人员认为他做得很好,但经过测试,错误又来了。现在决定我们不需要等待 2 个问题将得到修复,我们需要进行上传,这意味着创建release分支并在 beta 上进行测试。

在原始的 gitflow 文章中说:

从develop分支出一个新的release分支的关键时刻是develop(几乎)反映了新版本的期望状态。至少所有针对要构建的版本的功能都必须在此时合并到开发中

但是如果在develop分支历史中我们可以看到一对不需要的合并怎么办?我需要以某种方式切割它们吗?还是做其他事情?

谢谢。

4

1 回答 1

2

在这种情况下,最安全的做法是使用git revert来撤销提交。这将创建一个完全反转相关提交的提交。因此,git revert 1234567将在您的分支上创建一个新的提交,使用 SHA id 反转提交1234567

关于这样做的几点:

  • 在您执行 git revert 再次合并分支后,不会将已还原提交的更改带回,您必须还原还原提交。因此,在我们的示例中,git revert 1234567假设这创建了 revert commit 09876。现在您的开发人员已经正确实现了他的功能并且您希望将其合并。要通过还原删除更改,您必须现在git revert 09876然后合并他更新的分支。
  • 为了让您自己更轻松,将提交按从最近到最近的顺序还原。所以如果你有提交,在1, 2, 3哪里做。然后,如果这些还原创建提交以重新引入更改,则按最近到最近的顺序还原它们。1HEADgit revert 1, git revert 2, git revert 38, 9, 10
  • 也可以恢复合并提交,但这有点复杂,在手册页中有描述,git help revert
  • 如果你需要这样做,你应该阅读Linus 的这篇文章,他描述了许多你需要考虑的事情。
于 2012-12-03T14:18:54.057 回答