2人在一个项目上的工作流程是什么


18

我是作为一个新手程序员来找您的,他一直在从事自己的项目(进展很好)。我的联合创始人还一直在学习如何编程,并且已经达到了可能开始修复某些问题并使某些事情发生的地步。

他问了一个很好的问题,即“这将如何工作”。我只能从理论上做些什么,因为我从未与其他人一起编程过。您能建议我最好的工作流程吗?我们使用git。

我们应该拥有系统的特定部分吗?签入代码?代码审查?

您如何与> 1开发人员合作?


1
我最好的提示是看一下:nvie.com/posts/a-successful-git-branching-model这是在团队中组织代码的一种(好)方法,我们也使用它

你写测试吗?
NARKOZ,2011年

... @ NARKOZ-还没有。我们有点跳了进去。我想做的是,实际上只是买了一本书。

2
@Geoff Wright:请进入您的个人资料,并接受(单击旁边的选中标记按钮)人们如此慷慨地为您提供的问题的一些答案:stackoverflow.com/users/661241/geoff-wright
iwasrobbed

1
将bitbucket.com用于私人存储库
Klevis Miho

Answers:


23

我在一个使用git的团队中工作,其中40多个开发人员在任何给定的时间点都在多个代码存储库(100+)上工作。我们还从很少的开发人员入手,在短短几年内扩大了团队规模。在开始的时候,虽然很少有人,但是您只知道最低限度的git就可以逃脱。随着时间的流逝,您将改善git fu,发现强大的功能。

  1. 您将需要一个托管代码的地方。考虑使用githubgitorious。两者都可以免费使用,但是您的存储库将是公开的,并且对其他人可见。如果您想要私有存储库,则可以免费它们托管在github上,或者安装并托管您自己的怪异服务器
  2. 首先,最好不要担心涉及派生,拉取请求的高级工作流程。您可以通过集中使用git来开始使用(shudder!)。将您的托管副本视为源代码的权威副本。让我们叫这个仓库upstream
  3. 你们其中之一将所有代码提交到本地git存储库,并将其推送到该upstream存储库。
  4. 另一个团队成员可以克隆此存储库。
  5. 一组最小的命令,你需要学习的clonepullpushaddcommitlogstatusdiffbranchstashapplyresetformat-patchbranch从gittutorial了解更多有关它们的信息
  6. 你们俩现在都可以在代码的任何部分上工作。不用担心当两个人都编辑同一个文件时会发生什么。Git非常擅长处理合并和修复冲突。
  7. 进行小的原子提交并编写良好的日志消息。使用当前时态提交日志。您可以根据需要对本地副本进行任意数量的提交,因为这不会影响其他人的工作。
  8. 当您认为您的代码已准备好与他人共享时,请将其发布到upstream存储库中。一个好的习惯是在推前总是拉。这样,您可以使存储库与其他更改保持同步。
  9. 重复步骤78

熟悉此工作流程后,您可以进入更高级的内容,例如-主题分支,派生,拉取请求,合并,交互式重新确定提交等。

如果您真的要进行代码审查,那么仅使用git和email即可。当您的团队规模超过10+时,最好使用某种在线工具来完成。因此,实际上有许多方法可以做到这一点,而这只是一种简单的方法:

  1. 创建一组提交以进行审核git format-patch。这将生成一组补丁文件。通过电子邮件将这些补丁发送给审阅者。
  2. 审阅者可以使用来应用补丁git apply。这将应用补丁,但不会创建提交。
  3. 查看代码,并通过电子邮件发送建议。
  4. 重复1-2-3,直到满意为止。
  5. 审阅者确认可以推送补丁upstream

我还想将git rebase添加到此列表中。
2011年

1
我不同意这stash, apply, format-patch是最低知识的一部分。我通常要等几个月才能教这些东西。我猜想> 50%的开发人员不会藏匿。
Michael Durrant 2015年

1
调用upstream origin,它将有助于使其他示例(通常使用origin)更容易理解。
Michael Durrant 2015年

2

我为此使用github及其所有功能。在http://www.github.com/上进行检查, 这样您就可以使用分支机构,分支机构,问题,请求请求来与您的合作伙伴一起工作。


0

我要做的第一件事是查看中央代码存储库,以便可以将更改合并并在两个项目之间保持同步。SVN是一个很好的容易的,我在过去使用,它已经足够长的时间,它的相当成熟的 SVN

之后,我将确定你们两个之间的角色,即你们两个都将扮演

  1. 您是要暂时编写代码功能还是要一个人进行错误修复,而另一个人要继续使用这些功能。
  2. 您是否要创建一组基本编码标准,例如括号位置,私有成员变量命名,变量和方法命名约定(CamelCase等)
  3. 您需要多久办理一次登机手续。我建议每天至少一次,以确保你们俩都能早日看到对方在做什么。尽管始终确保在签入之前代码是可构建的。
  4. 他是老板,但您将成为编程负责人吗?

祝好运!


1
SVN是一个不错的选择(我目前正在工作中使用它)...但是我发现Git和Hg更好一些,因为我可以在本地进行提交(当我做一些愚蠢的事情时可以还原)而不必强迫其他人处理(如果他们svn更新)可能无法使用我的代码。老实说,由于这个原因,我开始在办公室使用Git,但我仍然可以使用git-svn将更改发布回SVN
Ken Henderson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.