多个设备上的Web开发结构

时间:2018-04-03 08:36:37

标签: git drupal workflow vps gogs

我对网站开发有疑问。 (我主要制作Drupal网站)我一直试图解决这个问题,但我找不到最好的工作流程。我会解释我的问题:

我有一台笔记本电脑(我主要用于学校)和一台电脑。我想将它们用于开发。

我认为最佳做法是使用像GitHub这样的东西。但我并不希望一切都公之于众。所以我租了一个vps并设置了GOGS(一个自托管的GitHub替代品)一切正常,我可以用它来推动我的工作到其他设备。

我目前的问题;如果我开发一个Drupal网站,我会在笔记本电脑上进行安装。我也需要在我的电脑上进行相同的安装。 (因为我使用的是.gitignore。不是整个安装都会被推拉。)

这是我应该的工作方式吗? 我想到了一些替代方案,但我不知道它们是否更好;

  • 我无法使用.gitignore,将整个项目推送到我的vps。甚至包含密码的文件。
  • 我无法使用我的gogs vps并使用云服务,或者使用NAS将一个项目同步到另一个设备。然后使用本地git在云服务中创建存储库。

我想问你最好的方法是什么?谢谢!

1 个答案:

答案 0 :(得分:3)

我认为自我托管的Git有点开销。只需在https://bitbucket.orghttps://gitlab.com上创建一个帐户即可。他们有免费的私人回购。

但是,原则上,你的工作方式是正确的方式。

  • 分散代码库
  • 本地发展
  • 代码发布到实例(服务器)

Drupal现在已经有了某些东西"预先考虑"谈到Git的开发。它已经有一个正确预配置的.gitignore文件,例如,它最初会排除settings.php文件,该文件包含敏感信息(最重要的是:数据库凭据)。此文件将在站点的所有本地和实时实例上有所不同。您可能还想忽略其他文件(.htaccessrobots.txt等)。这主要取决于您的工作流程。

下一步"问题":数据库。正如您可能已经发现的那样,某些事情只存在于数据库中。不在代码中。节点,页面,设置。这个问题通常通过"下行流式传输来解决。数据库转储从方向到本地(从不在相反的方向)。因此,您通常会从实时实例(在您的实时服务器上)创建数据库转储,然后在您的开发服务器和本地实例中导入该数据库。因此,您现在可以定义一个基本实例,并始终从那里获取数据库。 (类似地适用于/files文件夹中的所有资产 - 只需将该文件夹从实时下载到本地实例。)

在Drupal中,这个"问题" (或挑战)通常使用Features模块解决,该模块允许您将数据库设置从本地Drupal数据库导出到某些功能模块中,然后可以将这些设置提交,推送,拉取并重新导入数据库在实例上。在Drupal 8中,这个挑战主要由Configuration Management解决,其中很多这些设置被导出到*.yml文件中,然后可以在所有其他实例上分发和导入。

为了使Drupal开发更容易(当涉及到导出和导入数据库或配置时),有许多工具可用。

但您也可以使用您喜欢的其他工具(NPM,Bower,Gulp等)。然后让他们做驴的工作。

当您开始与其他人合作完成一个项目时,我提供的大部分信息会自动变得更清晰。

请随时在评论中提出一两个确切的其他问题。