为每个开发人员创建分支是否有意义?

dan*_*jar 18 git collaboration version-control github

我只将Git用于单一项目.现在我想继续与另外两个开发人员合作开发一个项目.

如果一个开发人员想要提交更改但是另一个开发人员创建了另一个提交,是否会导致问题?因此,为我们每个人创建一个分支是否有意义?

Kla*_*urn 28

与大多数版本控制系统一样,Git非常适合多个开发人员使用.实际上,它是版本控制系统的要点之一.

无需为每个用户创建分支.我甚至会说这会适得其反.如果您正在使用相同的功能,您可能希望通过拉动和合并来获得彼此的更改.为每个用户创建分支是多余的,并且会使不必要的事情复杂化.

您描述的提交情况不成问题.如果另一个用户在与您相同的分支上创建了新提交,则在尝试时将停止push.相反,您首先必须pull关闭其他用户的提交并将这些更改合并(或重新绑定)您的工作.这是标准行为git pull.

通常的做法是主要基于特征创建分支.如果您需要有关分支的指导,这是一种流行的策略.

  • 我认为这个答案是错误的。您不应在同一分支上有两个开发人员。如果有人压掉一堆提交并用力推动怎么办?如果该功能需要两名开发人员,则您应该准确确定每个开发人员正在从事的范围,并为每个功能创建分支。然后,您可以在master(或里程碑等)上有一个额外的分支,然后将这些功能分支合并到其中。这将解决合并冲突并在集成到master并经历部署过程之前对集成分支进行适当的测试。 (3认同)
  • 你仍然不应该只创建单独的分支*每个人*;它应该是驱动分支创建的功能。每个人都应该拥有尽可能多的分支,因为他们在积极开发中拥有的功能。 (2认同)

Ren*_*nan 7

我们曾经在我工作的地方这样做.我们每个人至少有一个个人分支 - 我实际上为我必须完成的每项任务创建了一个分支.

当我们完成后,我们会将请求拉到主分支.如果某人已合并到与您的更改冲突的主分支代码中,您必须像使用任何其他源代码控制平台(如Tortoise,Mercurial等)一样进行冲突解决,但如果您的开发人员知道这一点并不重要他们在做什么.

IMO这是在团队中进行开发的最佳方式.您可以随时在自己的个人环境中进行测试,并根据需要快速从每个分支中获取代码.拉取请求系统也使同行评审变得更加简单,因为每个人都可以直接在github diff页面中协作并在相关行上写评论.