来自Git新手的另一个noob问题。
我有一个git repo,两个开发人员在两个不同的叉子上工作。要求是每个人都应该能够独立工作,经过一些更改后,两者都会创建一个拉取请求,我会将他们的工作合并到主回购中。发生这种情况时,两者都会从主仓库中提取更改(通过将其添加为远程仓库)并继续处理最新代码。
我的问题 -
奖励:如何限制可能暂时工作的一些自由职业者/其他开发人员访问完整代码库? (更多来自管理层而非代码)
答案 0 :(得分:1)
图表中描述的关系是完全正确的方法。
问题2虽然你错过了git的分布式特性。我将尝试描述最简单的例子: 每个开发人员都应该拥有一个带有master分支的repo的克隆。当他们开发时,首选方法是在所谓的功能或主题分支中进行开发。即专用于特定功能或错误修复的分支或其他。这允许并行开发不同的特征。但是这些分支不需要在主线上共享,它们可以并且应该保持在本地(尽管如果需要将它们推送到主线也没有坏处) 现在,如果他们想要在不影响主线的情况下交换他们的代码,他们可以将彼此的repos添加为远程,并根据需要跟踪其他分支。然后,当它真正合并他们的努力并将其推向掌握时,其中一个应该作为一个集成商(或你)处理它的分支在git中非常轻量级,你将开始更频繁地使用分支,你将无法了解你之前是如何在没有分支的情况下工作的。
另一种方法是在主线上建立集成分支。这可能是主要的,或为该单一目的维护的单独分支。当某个部分在开发方面准备就绪时,开发人员将其本地仓库切换到集成分支,提取最新更改并合并/重新绑定其主题分支,然后将其推回主线
a)更频繁地提交 b)提交作为单个功能单元的较小块,不要提交数百个文件。 c)更频繁地整合
BONUS:您不能限制对repo的一部分的访问,因此使用面向组件的方法并将事物拆分为不同的repos。这不仅可以实现细粒度的访问管理,而且还可以减少集成量(因为整个代码库不会受到影响,但每次提交都会受到影响),加上它可能会强化更好的设计。