Gök*_*can 5 git version-control
我们的团队有3个后端开发人员和2个前端开发人员。我们将其Git用作版本控制系统,Jira问题和项目跟踪以及StashGit存储库。最后,我们使用SourceTree(和git-flow)作为Git客户端。
问题在于我们的分支策略:我们使用的是Vincent Driessen的分支模型。每个人都feature branch为每个问题创建一个,然后将其合并回develop完成状态(通过拉取请求和对Stash的审查后)。除此之外,我们bugfix branches为已完成但尚未发布的问题,hotfix branches已发布的问题和release branches最终的sprint创建。在这种情况下,没有人可以触摸develop和/或master直接触摸。我们的前端团队将其Sass用作CSS预处理器。最后,我们必须TeamCity构建更改,然后在master分支上查找更改。
有足够的背景知识吧?好的,这就是问题所在:假设我们在sprint中有50个问题(每个人10个),在sprint结束时,客户只希望释放其中的35个(无需问为什么,这是客户)。因此,我们需要以某种方式排除15个问题。通常,它们是前端问题。由于我们的设置,develop此刻一切都在分支中。现在,我们有两种选择:
release branchfrom develop并还原这15个问题(我们需要更新TeamCity或将其合并到master之后)。master恢复原状(在这种情况下,无需触摸TeamCity)。master(这可能最终还会导致很多冲突)。但是它们两者都有此限制:Sass-to-CSS操作。如果我们选择第一个选项,并且存在一些前端问题,那么肯定会有冲突。如果选择第二个选项,那么我们将失去对什么位置的跟踪,我认为这最终是一种滥用。
全球存在一个很大的限制:我们需要进行测试develop(因此,每个已完成的问题都需要develop进行测试,这不能更改),并且我们要发布正在发布的内容master(可以在TeamCity中进行更改,但没人愿意更改它)。
问题是这样的:当同时有一些改进和停止时,我们如何连续使用Git?
如果需要,我可以提供更多详细信息,随时问。
希望我能很好地理解你的问题。我认为第四种解决方案更适合您的情况:
develop与到目前为止相同的方法,那里有所有东西,因为你必须在那里进行测试production(或release)分支 - >这将是您的发布分支,至少现在是这样,直到您可以完全部署所有内容(如果您的客户需要的话)production经过开发测试后的分支中。基本上develop是你的qa分支(用于测试目的)。这比在冲刺结束时挑选数十或数百次提交要好。因此,我基本上建议的是,在将功能分支合并到 后develop,不要删除它们,最终修复与该功能分支上的某个功能相关的错误,然后将该分支合并到该分支中production。
如果您认为此方法不起作用(除了您必须更改发布分支配置这一事实),请告诉我。
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |