Sandofsky主张严格控制“主”存储库的历史记录,保持干净,避免使用分支和检查点提交使其混乱。
引用:
首先使用reset、rebase、squash merges和commit amending等工具清理你的分支,永远不要直接将私有分支合并到公共分支中进行普通合并。将公共历史视为不可变、原子和易于跟踪的,而将私有历史视为可丢弃和可塑造的。
我很赞同这种方法,打算实施一种工作流程,让我的同事们各自拥有自己的远程存储库来推送代码,在他们完成分支工作并清理提交历史后,发起拉取请求。然后我(“集成经理”)将这些干净的提交合并到总开发分支中。
我想这种方法意味着受保护的存储库将没有任何其他分支,除了主分支和开发分支。功能分支只存在于本地存储库中——如果需要在分支上进行协作,可以将该分支推送到其中一位协作者的远程存储库中。
链接1:倡导者 链接2:主分支和开发分支 然而,Pro Git book 将其描述为“公共小项目”的工作流程。这是否意味着在我们的情况下最好使用不同的工作流程,例如将完成的分支推送到受保护的仓库而不是个人仓库?
明确一点:我不想增加不必要的复杂性或开销。我的目标是建立一个工作流程,使我和我的同事能够异步地工作,我可以在他们完成后审查他们的工作,并通过评论或将其合并到代码库中来反弹回去。
编辑:显然问题不太清楚,因此我将尝试总结一下:
引用:
首先使用reset、rebase、squash merges和commit amending等工具清理你的分支,永远不要直接将私有分支合并到公共分支中进行普通合并。将公共历史视为不可变、原子和易于跟踪的,而将私有历史视为可丢弃和可塑造的。
我很赞同这种方法,打算实施一种工作流程,让我的同事们各自拥有自己的远程存储库来推送代码,在他们完成分支工作并清理提交历史后,发起拉取请求。然后我(“集成经理”)将这些干净的提交合并到总开发分支中。
我想这种方法意味着受保护的存储库将没有任何其他分支,除了主分支和开发分支。功能分支只存在于本地存储库中——如果需要在分支上进行协作,可以将该分支推送到其中一位协作者的远程存储库中。
链接1:倡导者 链接2:主分支和开发分支 然而,Pro Git book 将其描述为“公共小项目”的工作流程。这是否意味着在我们的情况下最好使用不同的工作流程,例如将完成的分支推送到受保护的仓库而不是个人仓库?
明确一点:我不想增加不必要的复杂性或开销。我的目标是建立一个工作流程,使我和我的同事能够异步地工作,我可以在他们完成后审查他们的工作,并通过评论或将其合并到代码库中来反弹回去。
编辑:显然问题不太清楚,因此我将尝试总结一下:
让我的同事将他们的分支直接推送到我们的仓库是否有劣势(例如会以某种方式“污染”其历史记录)?