Git生产/登台服务器工作流程


108

目前,我的网站(生产服务器)中已经包含很多代码。现在,我想开始在项目中使用Git,并为团队设置临时服务器。有人可以给我任何建议吗?

这是我脑海中的图片:

        Production        - Production server which already have codes
            ↑             
         Staging          - New staging server, will install Trac too
         ↗↙ ↖↘          
  Developer1  Developer2  - Local development 

我的问题是,我应该如何开始?

我想到的一些步骤是:

  1. git init生产服务器(这安全吗?)
  2. clone 从生产到暂存服务器的存储库
  3. 开发clone从阶段到本地计算机的仓库
  4. push 完成更改后将文件保存到登台服务器
  5. 准备好登台后,push一切就可以制作了

这个工作流程有意义吗,还是有一些更好的方法呢?

如果我只想更改一个文件怎么办?

在这个过程中,起源/母版与它有什么关系吗?谁是起源?我最终将有多重起源吗?

另外,branch在这种情况下,开发人员应何时使用?

Answers:


59

最好仅将主分支用于生产和开发分支用于暂存。每个开发人员都应创建本地分支以添加新功能,然后与开发分支合并。如果您不熟悉git,请尝试使用-http://github.com/nvie/gitflow还有一张描述git分支模型的好图片-http: //nvie.com/posts/a-successful-git-分支模型/


这是一个更好的答案。我对Git分支的概念不是很熟悉。
kayue 2012年

@bUg。您是否有指向某些资源的链接,这些资源详细说明了开发分支->推送到登台系统主分支->推送到生产服务器?上乘的文章A成功的Git分支模型没有提及该部分,即使它确实提到了很好的分支和版本控制概念。
Edgar Alloro

19

您的建议看起来不错,但我不会让开发人员直接将其推送到登台服务器。相反,集成商应仔细检查分支并将其合并到主分支(如果您按照bUg的建议使用git flow模型,则将其合并到开发分支中。)*同一个人将推送到登台服务器。

* 集成者:“ 在一个小组项目中,作为集成者的相当核心的人可以接收他人所做的更改,对其进行审查和集成,并将结果发布给他人使用...


1.在生产服务器中执行git init(这样安全吗?)

是的,它很安全,但是您当然必须对此存储库设置非常严格的权限。curl如果我还没有的话,我可能会先将整个网站都放入本地光盘。

2.将回购从生产克隆到登台服务器

您可能应该有一个与生产服务器和登台服务器都分开的“中央”存储库。可以根据需要将其克隆并推送。

3.开发人员将存储库从登台克隆到本地计算机

4.完成更改后将文件推送到登台服务器

5.准备好分阶段后,将所有内容推送到生产环境

用“ central”代替“ staging”,我认为您还可以,但是更大的问题是,如bUg所指出的,如何使用分支和合并。


10
1:要使Git存储库在生产中安全,请确保添加一个带有“ Deny All”的.htaccess文件。
kayue 2010年

2
2:Felixyz的“中央”存储区是指裸存储区。使用--bare命令创建裸仓库。
kayue 2010年

1
@keyue 1:甚至更好,将其添加RedirectMatch 404 /\.git到您的生产.htaccess中,以保护.gitignore.gitattributes.git文件夹。
狮子座
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.