我刚读过 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
有推荐的方法吗?
答案 0 :(得分:0)
通常人们不会重写历史记录,因为您的项目可能会丢失关于设计决策的重要细节和信息。那么,我建议的是,你决定在生产中不想要的任何改变,你revert
them。这样,您就可以删除不需要的更改,但保留一系列事件,告诉您为何决定删除某些更改或功能。
要使用此命令,请运行git revert <commit>
。
从staging
删除不需要的提交后,将staging
合并到master
分支中:
git checkout master
git merge staging
答案 1 :(得分:0)
我是该指南的合着者。首先让我纠正你的分期 - &gt;生产部分。该指南并未建议将升级合并到生产中。暂存是一个沙箱分支,它不应该合并到其他任何东西,因为它可以包含未完成或被取消的分支。
如果您发现已经合并到稳定(和生产)的暂存错误,只需使用“git revert”将其恢复到稳定状态,将稳定版合并到生产和部署中。然后,您可以在暂存中还原它,或者从稳定分支中重新创建从头开始的暂存。
当每天都有很多功能/修复程序被合并到暂存中,而其中一些功能/修复程序后来被取消时,最好从主分支“不时”刷新暂存分支,然后仅合并相关的东西进入它。