在网站部署中使用git的最佳实践

Gid*_*eon 7 git

我现在正在公司实习五个月,我将改变开发人员访问文件的方式,即git而不是普通的ftp访问.git的一切都很好,直到现在,我对使用它一个月后的用法有点熟悉.

这就是我现在想到的:

在此输入图像描述

我们使用beanstalk作为repo hoster,它带有一个可以轻松实现的部署功能,因此该部分被覆盖.让我思考的部分是分支.我想要创建一个名为"Live"的分支,而只是"master".master将部署到开发网站(图片右上角),live分支将部署到实时网站.此外,实时网站部署将是手动的,但主人应该是自动的,到目前为止,没有问题.

当我想到现场网站发生微小变化的情景时,它会变得复杂.假设我需要更改一些随机div的填充,我不想将最新版本用半实现的api部署到实时网站,我只想部署小改动,这可能是某种方式吗?

我现在看到的方法是在两个地方进行修复,首先拉动主分支并修复它,然后对实时分支执行相同操作.但是,随着更大的变化,这将变得更加困难.

此外,由于我们几乎都使用Wordpress,因此大多数数据都将存储在数据库中.这真的很好,因为我们只需要不时地克隆实时数据库,我们就完成了.但是当图像上传发挥作用时,东西变得非常难看.repo中会有一些图片(因为我们从一开始就没有使用git从完整副本开始)而后来添加的其他图片只会坐在ftp目录中,假装它们在回购!

最好不要在git 包含像缓存和媒体这样的文件夹,或只包含一些文件夹,或者只是偶尔更新一次?

这几乎是我最大的两个问题.

tl; dr:如何对一个过时的分支进行小的更改而不做两次(也适用于master).git repo中缓存/媒体文件的正常用法是什么?

Dan*_*rth 15

我建议你阅读git flow.

它解决了这个确切的问题.

基本上你有以下分支:

  • 大师:你叫什么"直播"
  • 发展:这就是发展的地方
  • feature:对于在开发期间发生的更大变化,这些变化太过中断而无法在正常的开发分支上执行
  • 修补程序:这是您的小修补程序.

重要的部分是哪个分支基于其他分支:

  • 发展将脱离主人.
  • 功能将分支发展.
  • 修补程序将从master分支出来.

开发的变化在经过全面测试后将合并为主人.合并为master意味着:这是一个发布,所有测试都已完成.

这意味着master总是包含当前的实时状态,因此保证从主服务器分支修补程序不会引入开发所做的任何其他更改.

这只是对git flow实现的分支模型的简短描述.我建议你完整阅读.它还有一些漂亮的图形:)