我现在有点挣扎,我不知道该怎么做。
我们最近从SVN
切换到GIT
。每当我们创建一个网站时,我们都希望它在版本控制之下。
对于这种情况,在我们所有的客户网站空间中,GIT最初已经安装。我们的想法是在本地开发,进一步开发网站,在完成更改请求后,将其“发布”到实时服务器。
对于这种情况,我们安装了自己的gitlab
- 实例,其中部署了代码。到目前为止,一切都很好。
出于安全原因,我读到您不应该将配置文件添加到版本控制中。在我的示例中,我们调用文件config.php
。所以我将这个文件名添加到我的.gitignore
,它按预期工作。然而,
如果你想让其他人也在项目上发展,你如何处理它?在README
中写一下如何设置config.local.php
并在主配置文件中包含该文件?
下一步:即使它们可能为空,也需要存在某些文件和文件夹。作为一个例子,我们有一个“临时”文件夹。我需要文件夹,但内容无关紧要。我尝试将此行添加到.gitignore
,但这不起作用:
/temp/*
根据我的理解,这应该只排除在文件夹中,而不是文件夹本身,对吗?
然后再次,这是我的最后一个问题:如果由于某种原因,客户/所有者更改了他的CSS文件中的内容,那么您就不同步了,对吧?您不能在没有问题的情况下拉取/获取最近签入的文件(如果您也编辑了css文件),因为它们最终会发生冲突。去那里的方式是什么?我之前读到了关于完全同步的内容,但这并不能保护我不再遇到同样的情况,对吧?
如果这不是正确的平台,请告诉我。 感谢
答案 0 :(得分:2)
问题1 : 如果您希望存储库中有一个空目录(temp,log),则必须将文件放入您添加到存储库的文件中。 Git不跟踪目录,只跟踪文件。
每个文件夹中都可以有一个空的.gitkeep
。但这个名字根本不重要。您还可以在每个空文件夹中使用.gitignore
。
问题2 : 在您的存储库中配置文件没有任何问题。你只需要小心秘密。 数据库访问的密码当然应该是秘密的,但根据您的情况,也可以提供服务地址。
如果您使用GitLab CI进行部署,您可以从环境变量中读取配置并在GitLab中设置这些配置(项目 - >设置 - >变量)。这些变量不公开。
问题3 : 客户可以拥有一个自定义分支,而不是每次更新项目时都要重新定义。 您可以在项目中实现自定义css文件,这意味着通过config / admin页面上传自定义css文件。