1

我有一个关于 Web 开发的问题。(我主要制作 Drupal 网站)我一直在尝试解决这个问题,但我找不到最好的工作流程。我将解释我的问题:

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

我认为最好的做法是使用 GitHub 之类的东西。但我不希望一切都公开。所以我租了一个 vps 并设置了 GOGS(一个自托管的 GitHub 替代方案)一切正常,我可以使用它来将我的工作推送和拉取到其他设备。

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

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

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

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

4

1 回答 1

3

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

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

  • 去中心化代码库
  • 地方发展
  • 代码发布到实时实例(服务器)

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

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

在 Drupal 7 中,这个“问题”(或挑战)的很大一部分通常是通过Features模块解决的,它允许您将本地 Drupal 数据库中的数据库设置导出到某些功能模块中,然后可以提交、推送、拉取和提交这些设置。重新导入到实时实例上的数据库中。在 Drupal 8 中,这个挑战主要由配置管理解决,其中许多设置被导出到*.yml文件中,然后可以在所有其他实例上分发和导入。

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

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

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

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

于 2018-04-03T10:56:33.123 回答