git master / staging / production setup,如何恢复升级?

时间:2014-02-10 05:17:37

标签: git deployment

我刚读过 http://guides.beanstalkapp.com/version-control/branching-best-practices.html

他们谈论master - > staging - > production设置,我认为这是有道理的。

有一件事困扰我,如果我在分期时发现一个关键的错误,该怎么办?

即。假设存在需要进入生产的提交,并且需要在暂存分支中删除提交。

我想我需要办法做到以下几点。

1. un-merge commits from `staging` which I don't need
2. um-merge the same commits from `master` so that `staging` can merge other commits 

有推荐的方法吗?

2 个答案:

答案 0 :(得分:0)

通常人们不会重写历史记录,因为您的项目可能会丢失关于设计决策的重要细节和信息。那么,我建议的是,你决定在生产中不想要的任何改变,你revert them。这样,您就可以删除不需要的更改,但保留一系列事件,告诉您为何决定删除某些更改或功能。

要使用此命令,请运行git revert <commit>

staging删除不需要的提交后,将staging合并到master分支中:

  • git checkout master

  • git merge staging

答案 1 :(得分:0)

我是该指南的合着者。首先让我纠正你的分期 - &gt;生产部分。该指南并未建议将升级合并到生产中。暂存是一个沙箱分支,它不应该合并到其他任何东西,因为它可以包含未完成或被取消的分支。

如果您发现已经合并到稳定(和生产)的暂存错误,只需使用“git revert”将其恢复到稳定状态,将稳定版合并到生产和部署中。然后,您可以在暂存中还原它,或者从稳定分支中重新创建从头开始的暂存。

当每天都有很多功能/修复程序被合并到暂存中,而其中一些功能/修复程序后来被取消时,最好从主分支“不时”刷新暂存分支,然后仅合并相关的东西进入它。