桑多夫斯基主张对你的"主要"回购历史非常严格,保持干净,不要在分支和检查点提交的情况下混乱.
您永远不应该将私有分支直接合并到具有vanilla合并的公共分支中.首先,使用重置,rebase,squash合并和提交修改等工具清理分支.
将公共历史视为不可变的,原子的,易于遵循.将私人历史视为一次性和可塑性.
这对我很有吸引力,我正在计划实现一个工作流程,我的同事们每个人都有自己的远程存储库来推送,并在他们完成分支工作并清理提交历史记录时执行拉取请求.随后,我("集成管理器")将这些干净的提交合并到一般开发分支中.
我想这种方法意味着受祝福的回购将不会有除主人和开发分支以外的任何分支.功能分支仅存在于本地存储库中 - 如果需要在分支上进行协作,则可以通过将分支推送到其中一个协作员工的远程存储库来实现.
但是,Pro Git书将其描述为" 公共小型项目" 的工作流程.这是否意味着在我们的案例中使用不同的工作流更好,比如将已完成的分支推送到受祝福的仓库而不是个人存储库?
要明确:我不是要添加不必要的复杂性或开销.我的目标是建立一个工作流程,让我和我的同事可以异步工作,我可以在完成工作时审查他们的工作,并通过评论将其反弹或将其合并到代码库中(如果一切正常).
编辑:显然问的问题不明确,所以我将尝试总结一下:
让我的同事将他们的分支机构直接推送到我们受祝福的存储库(例如,它会以某种方式'污染'它的历史)会有不利之处吗?
有几个缺点:
受祝福的存储库很快就会(取决于有多少开发人员和功能)被许多分支弄乱。如果它只包含 master 和development,那么它会比 master、develop、featureA、featureB、featureC .. 等更干净。但是,您始终可以通过在远程删除它们来清理存储库(git push origin :featureA),但它添加了额外的清理工作。
此外,当人们从受祝福的存储库中获取时,他们的存储库将包含对所有这些分支的远程引用,并且当您删除远程分支时,他们将必须关闭和打开“git Remote prune origin”来清理不再有效的引用,这也增加了额外的工作。
| 归档时间: |
|
| 查看次数: |
835 次 |
| 最近记录: |