2012-12-03 68 views
1

我想在我们的开发过程中应用gitflow方法,理论上我喜欢它。但有一点不在任何地方......如何切错提交[git]

每个人都把他们的结果推到develop分支。在计划中,我们有10个问题应该完成并发布到beta版,然后发布到生产版。 10个问题中的2个并没有最终确定,但部分已经在开发分支,因为开发人员认为他做得很好,但是在测试bug再次出现之后。而现在我们决定不用等待,而这2个问题将得到解决,我们需要进行上传,意味着需要在release分支上进行测试。

在原gitflow文章说:

关键时刻岔开了新的发布分支从开发时 发展(几乎)反映了新版本的理想状态。在 至少那些针对所有功能的发布将要建造的必须 将在合并在这个时间点

开发但要怎么做,如果在develop分支历史,我们可以看到,不需要夫妇合并?我需要切断它们吗?还是做其他事情?

谢谢。

回答

2

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

有关执行此操作的几点:

  • 后你做一个混帐复归再次合并分支不会带来变化从恢复提交回来,你必须恢复的复归提交。因此,在我们的git revert 1234567示例中,假设这创建了回复提交09876。现在,您的开发人员已正确实现了他的功能,并且希望将其合并到中。要通过恢复来清除更改,现在必须git revert 09876,然后合并其更新的分支。
  • 为了使自己更容易从最近的到最近的顺序恢复提​​交。所以如果你有提交1, 2, 3其中1HEADgit revert 1, git revert 2, git revert 3。然后,如果这些还原创建提交8, 9, 10以重新引入这些更改,则按照最近到最近的顺序将它们还原。
  • 它也有可能恢复合并提交,但这是一个比较复杂一点,它在手册页中所述,git help revert
  • 如果你需要做这个,你应该阅读由Linus this article,他介绍了许多你需要的东西想一想。
+0

谢谢你,我想它可能在这种情况下gitflow方法来完成更容易:)不是那么漂亮......在任何情况下,感谢您的回答。 – user1016265

+0

我认为,如果你使用几乎任何分支模型,而不仅仅是git流,就会发生这种情况。如果你没有使用git flow,你仍然需要恢复过早提交的代码,对吧? –