使用Git进行4人项目的协作

使用Git进行4人项目的协作,git,version-control,github,Git,Version Control,Github,在我的一个大学项目中,我参加了一个由4名开发人员组成的小组,他们的任务是从头开始开发web应用程序。我们都对Git有一个非常基本的了解,并决定使用它进行代码库协作,我们建立了一个repo,每个人都是GitHub上的合作者 在过去的几个月里,我们只是简单地克隆并向master分支机构承诺,这一切都很顺利。然而,最近有一些时候,两个或两个以上的人同时在代码库上工作,我们经常会遇到一些人在提交之前落后于提交,不得不在提交之前克隆repo,这有时会导致他们的更改丢失 今天,小组中的一位成员谈到了拥有一个

在我的一个大学项目中,我参加了一个由4名开发人员组成的小组,他们的任务是从头开始开发web应用程序。我们都对Git有一个非常基本的了解,并决定使用它进行代码库协作,我们建立了一个repo,每个人都是GitHub上的合作者

在过去的几个月里,我们只是简单地克隆并向master分支机构承诺,这一切都很顺利。然而,最近有一些时候,两个或两个以上的人同时在代码库上工作,我们经常会遇到一些人在提交之前落后于提交,不得不在提交之前克隆repo,这有时会导致他们的更改丢失

今天,小组中的一位成员谈到了拥有一个“开发”分支,我们都克隆并致力于这个分支,然后在每个sprint结束时合并到主分支中。我们尝试了这一点,但并没有真正看到改进,因为我们仍然使用相同的代码库,所以出现了与以前相同的问题

其他人有这样的想法:分叉(这对我来说是新事物)主回购协议,处理它,然后向主回购协议发送拉请求,然后主回购协议可以合并。实际上,这听起来是一个很好的计划,因为如果更改破坏了代码,可以对其进行检查和修复。无论如何,这就是我的理解

但正如我所说的,我们对Git都很陌生,对整个概念都有一个非常基本的理解。组织一个由4名开发人员组成的团队进行Git回购的标准方式是什么?我已经看过一些Git文档,但是对于一个只知道如何克隆和提交到主分支的人来说,这一切都相当混乱


谢谢你的帮助

您需要研究Git工作流和/或分支模型。有很多,这里有一个开始:


您需要考虑发布、登台、生产等概念,因为这很容易表示。这基本上都是关于组织的。

在开发方法中谈论“标准”是危险的,因为几乎没有这样的东西。开发团队倾向于以适合他们的方式组织自己(或者以管理层告诉他们的方式组织自己)

您确定的所有方法都是使用分布式版本控制系统的有效方法。我想说的是,你没有看到替代方案带来的巨大好处,因为你正在进行一个大学规模的绿地项目,由一小队人组成,他们在相同的地理位置,说相同的语言,具有相似的能力,对结果应该是什么有着相似的清晰想法。当任何一种情况都不是这样时,Git往往会发光

对于分布式项目,如果您真的希望有一个人充当项目规范版本的守门员,那么pull请求工作得非常好。当您希望每个人都有有效的平等提交访问权限时,开发分支是一个很好的解决方案。人们倾向于使用开发分支,这样他们就可以有一个随时可用的版本供人们使用。我假设您目前没有用户,这就是为什么您不太可能从这种方法中看到很多好处


我基本上会像你们一样继续下去,除非你们互相交谈,并确定某件事对你们团队来说不起作用,在这种情况下,你们可以决定其他工作方式是否对你们更有利。

你们写了“在提交之前克隆回购协议,这有时会导致他们的更改丢失”。为什么会丢失任何更改?您确定要从主分支提取更改吗?如果您这样做,您不应丢失数据。相同文件上的并行更改将由git自动合并。我意识到我现在的想法是多么愚蠢,但我的理解是,当两个人在同一个文件上工作,并且两个人都提交时,最后提交的人会覆盖在他们之前提交的人的更改。我想我们确实遇到了一些冲突错误,这让我们有点恼火。试着学习好的git教程。一开始就使用足够了。不需要把事情复杂化:)好的,谢谢。我认为“看门人”的方法在这里是最好的,因为虽然我们都很有能力,但我们的技能在不同的领域(两个后端程序员、一个用户界面人员、项目管理人员等等),所以我将更深入地研究让用户参与回购。这与我们今天早些时候在开发部门所做的尝试非常相似,只是更复杂,以支持诸如修补程序和功能等分支。然而,对于我们的项目,我有一种感觉,这将是太复杂了,尽管我会看看周围的更简单的模型。谢谢