我是我们 Web 开发公司的团队负责人,我想在我们的团队中实施 Git 工作流程。阅读文档和文章,我发现以下结构对我们有好处:
我们在 Bitbucket 中有一个存储库。Master分支被认为只包含稳定的代码。每个开发人员都必须创建自己的分支并在自己的分支中实现功能/错误修复。一旦他决定,他的代码已经准备好了,他就会创建一个不错的分支历史记录(使用 rebase、amend、cherry-pick 等)并将其推送到 Bitbucket,在那里创建一个到 master 分支的拉取请求。QA 验证功能并批准(或不批准)它,然后我正在验证代码,如果没问题,我将他的工作合并到 master 中(通过快进或 rebase 以获得更好的提交历史)。
但是这种方案仅在单个开发人员在分支上工作的情况下才有效。在我们的例子中,一个分支几乎总是有两个开发人员,因为一个开发人员在服务器端(PHP) 工作,而另一个开发人员在客户端(HTML/CSS/JS) 工作。这两者应该如何以某种方式协作,使 master 中的提交历史保持干净?
服务器开发创建 HTML 文件的基本结构,客户端开发需要获取此结构。从逻辑上讲,服务器开发者创建一个分支,客户端开发者根据服务器开发者分支创建自己的分支。但这意味着,该服务器开发人员需要在 Bitbucket 中发布他的分支,这将使他无法重新设置或更改已发布的提交。
另一种选择是等待,直到服务器开发人员完成他的工作,发布具有良好提交历史的分支并忘记它,并且只有在客户端开发人员开始在该分支中工作之后,但这会导致时间延迟,这会更糟。
您如何处理工作流程中的此类协作?