在实时服务器上使用GIT

时间:2016-06-07 15:00:36

标签: git gitlab

我现在有点挣扎,我不知道该怎么做。 我们最近从SVN切换到GIT。每当我们创建一个网站时,我们都希望它在版本控制之下。

对于这种情况,在我们所有的客户网站空间中,GIT最初已经安装。我们的想法是在本地开发,进一步开发网站,在完成更改请求后,将其“发布”到实时服务器。

对于这种情况,我们安装了自己的gitlab - 实例,其中部署了代码。到目前为止,一切都很好。

出于安全原因,我读到您不应该将配置文件添加到版本控制中。在我的示例中,我们调用文件config.php。所以我将这个文件名添加到我的.gitignore,它按预期工作。然而, 如果你想让其他人也在项目上发展,你如何处理它?在README中写一下如何设置config.local.php并在主配置文件中包含该文件?

下一步:即使它们可能为空,也需要存在某些文件和文件夹。作为一个例子,我们有一个“临时”文件夹。我需要文件夹,但内容无关紧要。我尝试将此行添加到.gitignore,但这不起作用:

/temp/*

根据我的理解,这应该只排除文件夹中,而不是文件夹本身,对吗?

然后再次,这是我的最后一个问题:如果由于某种原因,客户/所有者更改了他的CSS文件中的内容,那么您就不同步了,对吧?您不能在没有问题的情况下拉取/获取最近签入的文件(如果您也编辑了css文件),因为它们最终会发生冲突。去那里的方式是什么?我之前读到了关于完全同步的内容,但这并不能保护我不再遇到同样的情况,对吧?

如果这不是正确的平台,请告诉我。 感谢

1 个答案:

答案 0 :(得分:2)

问题1 : 如果您希望存储库中有一个空目录(temp,log),则必须将文件放入您添加到存储库的文件中。 Git不跟踪目录,只跟踪文件。

每个文件夹中都可以有一个空的.gitkeep。但这个名字根本不重要。您还可以在每个空文件夹中使用.gitignore

问题2 : 在您的存储库中配置文件没有任何问题。你只需要小心秘密。 数据库访问的密码当然应该是秘密的,但根据您的情况,也可以提供服务地址。

如果您使用GitLab CI进行部署,您可以从环境变量中读取配置并在GitLab中设置这些配置(项目 - >设置 - >变量)。这些变量不公开。

问题3 : 客户可以拥有一个自定义分支,而不是每次更新项目时都要重新定义。 您可以在项目中实现自定义css文件,这意味着通过config / admin页面上传自定义css文件。