我正在尝试在我们的开发过程中应用gitflow方法,理论上我喜欢它。但有一点在任何地方都没有涉及......
每个人都将结果推送到develop
分支。在计划中,我们有10个问题应该完成并发布到测试版然后再发布到生产中。 10个问题中的2个问题最终没有得到解决,但部分已经处于开发分支中,因为开发人员认为他做得很好,但经过测试后错误又来了。现在决定我们不必等待2个问题得到修复,我们需要进行上传,意味着make release
分支并在测试版上进行测试。
在原始的gitflow文章中说:
从开发分支新发布分支的关键时刻是 开发(几乎)反映了新版本的理想状态。在 至少所有针对要发布的版本的功能必须 被合并以便在这个时间点发展
但是,如果在develop
分支历史记录中我们可以看到不需要合并的情况怎么办?我需要以某种方式切割它们吗?或做其他事情?
感谢。
答案 0 :(得分:2)
在这种情况下最安全的做法是使用git revert来反转提交。这将创建一个完全撤消相关提交的提交。因此git revert 1234567
将在您的分支上创建一个新的提交,以反转具有SHA id 1234567
的提交。
关于这样做的几点:
git revert 1234567
示例中假设这创建了还原提交09876
。现在,您的开发人员已正确实现了他的功能,并且您希望将其合并。要通过恢复删除更改,您现在必须git revert 09876
然后合并其更新的分支。1, 2, 3
1
HEAD
git revert 1, git revert 2, git revert 3
,则8, 9, 10
。然后,如果这些恢复创建提交git help revert
以重新引入更改,则将其恢复为大多数到最近的顺序。