2010-12-02 115 views
5

我们有一个小型数字团队(3名设计师,3名开发人员),并且正在寻求将Git整合到我们的系统中。小团队的Git开发策略

目前,我们大多数网站都有一个中转站点(dev.example.com)和一个生产站点(example.com)。我们的开发人员通常会将代码更改为本地版本,将这些更改移至暂存站点,然后一旦批准,这些更改就会实时移动。另一方面,我们的设计人员(当开发人员太忙时)进行小的编辑,直接进入中转站点,然后在批准后推送直播。此外,在某些情况下,我们没有中转站点,编辑会直接推送到生产站点。

我知道不同的工作流程并不理想,但对于我们将Git整合到当前系统并保持工作流程相当简单(出于设计者的考虑),最佳方式是什么?在合并Git之前,我们当前的工作流程是否应该先标准化(例如,分段站点是强制性的,设计师必须在推动分级之前在本地进行开发),还是Git足够灵活以便按原样工作?

我对Git相当陌生,但已经读过只推送到裸仓库。这是必要的吗?如果是这样,这可能是中转站点吗?或者它应该是它自己的实体(即像example.local这样的内部服务器)?

会良好的工作流程是这样:

  1. 用户提取和合并的裸库到本地存储库。
  2. 用户在本地开发并将更改提交到本地存储库。
  3. 用户按下在example.local(或类似的东西)
  4. 用户拉动从纯仓库变化到分段存储库dev.example.com
  5. 当批准的变更到纯仓库,用户拉动从纯仓库到生产版本库的修改example.com

我这个工作流程唯一的问题是,裸仓库似乎是不必要的......不是吗?最后,我知道本地存储库上会记录什么(用户更改,提交等),但我不清楚将在裸存储库上记录的内容(推后),分段(在拉)和生产(拉动之后);上述所有步骤都可以被轻松跟踪和记录吗?

感谢您的任何和所有的建议/答案!

+0

我要指出的是,这些在建LAMP服务器上规模不等的网站。其中许多是用Wordpress开发的。 – user527480 2010-12-02 04:36:40

回答

3

这里是一个interestion git的工作流程:http://nvie.com/posts/a-successful-git-branching-model/

如果你的开发人员和设计人员不熟悉命令行界面,使用GUI git的包装,有几种:gitxgitboxgit tower,只需将它们谷歌得到他们的网站。找到一个适合你的团队的工具。

最好的工作流程是满足您团队需求的工作流程,并且可能随时间而改变。

0

Git的灵活性足以工作吗?

非常多。

我用来做什么的,让设计师在design分支或工作的东西类似命名的,总是有一个命令推的方式。

开发者合并从设计分会时,他更新服务器的内容。事实上,在自动部署脚本中,合并将是一个命令。

到舞台的设计变更,而不是dev的变化,可以随时切换分支在临时的设计分会。为此,您可以向设计人员提供一个部署脚本,该脚本可以推送最新的更改,切换到设计分支。

话虽这么说,鼓励设计师使用git,慢慢地逐步。首先将它们挂接到stash命令。并拉。然后,让他们创建不同的分支。

至于裸仓库,这是保持所有的人都在同步一种标准的方式,并没有技术上的理由有一个额外真的。除了大多数人使用github或具有良好Web UI的等效远程备份服务来进行通信和协调,这实际上成为中央裸仓库。

0

我没有看到使用裸仓库的原因。我写了一篇关于简单开发过程的短文: A simple developer process with Git

这不完全是你的情况,而是一个更一般的解决方案。使用功能分支的想法是允许人们将他们的改变推送到主要的回购站,而不会让所有人都工作混乱,并且更容易合并其他人的更改。

如果我这样做,这是我会做什么:

  1. 安装Gitorious。没有必要,但有助于跟踪事物,
  2. 在Gitorious中创建您的生产存储库。
  3. 向生产库中添加一个post-hook,当收到更新时,会自动更新生产服务器(可能会延迟到第二天晚上,哪种最适合您)。
  4. 在Gitorious中创建开发存储库。
  5. 向更新开发服务器的开发库添加一个类似的post-hook。

这种设置有很多优点:

  • 开发人员不需要担心更新网站。他们所需要做的就是推动开发回购。
  • 测试通过后更新生产服务器非常简单,只需一次推送即可(生产存储库永远不会从开发服务器以外的地方更新)。你甚至可以在post-hook中添加一个部分,如果推送了一个标签,就会这样做。因此,您可以使用标签将可释放版本标记为版本号,这会自动更新生产服务器。
  • 有人可以将某些东西搞砸(“哎呀!我的意思是推动开发,但推到推动”)的点少得多。