【发布时间】:2017-07-17 04:59:18
【问题描述】:
我希望有人能给我指出一个对我们的设置有意义的工作流程,因为事实证明,对所有相互冲突的在线信息进行分类有点无用。
在过去的几个月里,我们一直在使用“GitFlow”工作流程的修改版本。这些是我们拥有的永久分支:
- master(包含生产就绪代码)
- 测试版(包含客户端的最新“演示”)
- develop(包含项目的最新工作)
如您所见,我们的工作流程与传统 GitFlow 的不同之处在于,除了 develop 之外,我们还有一个 beta 分支。因此,我们经常不得不在beta 中包含单个功能(来自功能分支),而不需要合并整个develop。这就是我们出现问题的地方。
当我们从develop 创建一个特性分支时,它会经常与develop 同步。这意味着当我们尝试将功能合并到 beta 时,它会包含在 develop 上发生的大量不需要的提交。
我们能够找到的唯一“解决方案”是将功能分支中的更改手动重新提交(或挑选)到beta。这是非常违反直觉的,我知道必须有更好的方法。
另一个问题是,当我们需要为整个项目创建一个修补程序(应用到所有分支)时,我们从master 创建它,它不会合并到develop 没有疯狂的数量合并冲突。这也可以通过挑选来完成,但我们绝对需要使用 GitHub 桌面应用程序和网站 100% 完成我们的工作流程。我对命令行很熟悉,但我得到了明确的指示,我们不能依赖它。
我考虑过的一个选项是尝试以变基为中心的工作流程,而不是基于合并的工作流,但这是有问题的,因为变基不像合并那么简单(而且我什至认为不可能不使用命令行)。
请帮忙!!必须有一种简单的方法来做到这一点,而我们只是没有看到它。
【问题讨论】:
-
所以您可以依赖 GitHub UI,GH 可以随时更改,但不是实际的 Git CLI?您是否考虑过退出?
-
不,但感谢您将此作为评论而不是答案发布,因为它甚至没有远程帮助。
-
您正在尝试使用 git 分支模型解决组织问题,并且您的手被束缚在工具上。知道什么时候你可能会成功是值得的。
-
测试我们更新的项目经理根本不想使用命令行。我也不喜欢用它;我是一名前端开发人员,我总是更喜欢 GUI。我不明白这是一个多么无耻的要求。当然,GitHub 可以随时更改 UI,但他们显然不会对其进行更新以使其不那么有用。要求每个人都学习命令行会花费很多额外的时间,所以我继续为每个人挑选樱桃会更有意义。
-
现在你到了某个地方,这些是实际的问题。为什么 PM 必须关心 VCS?例如,在我当前的项目中,我们的 CI 将经过测试的代码部署到 PM 可以使用的环境中;她不必关心代码在哪里,更不用说如何检查和自己部署了。 git 分支工作流很少能很好地解决任何问题。移至Software Engineering 并提供更多有用的上下文。
标签: git github version-control merge git-flow