使用git了解dev / prod部署

时间:2013-02-01 14:37:36

标签: git deployment branch

我一直在阅读很多关于git分支模型的内容,并且非常确定我理解这背后的过程。所以我一直在推动我对网站的所有更改(使用PHP)到集中式仓库(原产地)。这只是一个裸存储库。但是,我想将此代码放入测试环境中。建议的处理方法是什么?我已经阅读了很多文章,只是将git工作树签出到web根目录,但我希望它更清洁。对于从事该项目的多个开发人员来说,这似乎不太适用。生产方面的情况也是如此。我从原点进入非裸露是否有意义?

对此有任何见解/意见/想法,以帮助我朝着正确的方向前进,我们非常感谢。

2 个答案:

答案 0 :(得分:0)

对于多开发项目,IMO最好/最简单的方法是为组的每个部分和/或成员创建一个分支,并让它们在那里提交更改。一旦完成项目的某个部分,或者完成并测试了分支上的更改,您就可以将它们合并回主服务器(我假设您的意思是“orgin”)。所以,简而言之,我会为每个开发人员或项目创建分支,然后将更改提交到分支,并且一旦完成分支与master合并。但是,这只是我对app dev和java工作的看法/经验,根据你的项目,可能有更好的方法。干杯和好运!

编辑:对于Windows,我喜欢TortoiseGit,我认为GUI对新用户有所帮助。

对于OSX我喜欢/使用每日SourceTree:

答案 1 :(得分:0)

听起来你在做PHP,所以我会从那个角度回答。

我现在设置了一个项目,其中包含两个主要分支masterdevelop。所有已完成的功能都会与develop合并,并且在测试后,develop会合并到master

对于你的部署问题,我建议不要只是检查到web root,因为这样也会将存储库详细信息放在该目录中不应该存在,理论上可能会导致合并问题或者意外覆盖生产的速度更高不在存储库中的数据,如配置文件或保存的PDF或其他内容。如果处理不当,这也是一个可能的安全问题。

我建议使用Phing之类的东西进行部署。使用Phing,我可以从命令行运行phing test-release并拥有它:

  1. 结帐develop并确保它是最新的
  2. 将我要部署的文件移动到服务器上显示的目录树
  3. 将文件SSH到测试服务器
  4. 将所有测试配置文件移至正确的位置
  5. 运行任何需要运行的数据库迁移
  6. develop分支推送至origin
  7. develop分支推送到我的个人备份存储库
  8. 关于这一点的好处是,一旦设置就可以非常容易地运行,我已经知道它不会覆盖我不想要它的任何东西。我还复制了相同的脚本,更改了一些目录路径和git分支名称并拥有phing www-release。如果将来需要,您还可以为集成服务器做好准备(即使您使用PHP,这仍然是个好主意。)

    我想,关键是git不是一个部署工具,如果你试图以任何非平凡的应用程序使用它,可能会引起麻烦。

相关问题