您好,我一直想做这件事,但是我想使用 git 来维护一些 typo3 开发网站。我查找了一些信息,最有价值的(chromium 翻译网站)对这个主题的解释不是很清楚,但让我想到了一些东西。我想知道如何设置一个 git 管理的 repo,如果在设置 repo 时需要忽略一些/其他文件夹,我应该注意什么,最佳实践等等。我已经决定每个版本都会单独进行数据库转储,以便与里程碑相对应,因为现在我还不确定如何处理 CMS 版本控制方面的问题。
您好,我一直想做这件事,但是我想使用 git 来维护一些 typo3 开发网站。我查找了一些信息,最有价值的(chromium 翻译网站)对这个主题的解释不是很清楚,但让我想到了一些东西。我想知道如何设置一个 git 管理的 repo,如果在设置 repo 时需要忽略一些/其他文件夹,我应该注意什么,最佳实践等等。我已经决定每个版本都会单独进行数据库转储,以便与里程碑相对应,因为现在我还不确定如何处理 CMS 版本控制方面的问题。
这是一个典型的.gitignore
/fileadmin/user_upload/
/fileadmin/_temp_/
/uploads/
/typo3conf/temp_CACHED*
/typo3conf/temp_fieldInfo.php
/typo3conf/localconf_local.php
/typo3/
/t3lib/
/typo3temp/
请记住,当使用git
来管理TYPO3
时,不应该使用Extension Manager
在远程安装任何扩展!
相反地,应该先在本地导入扩展,然后在本地安装,并将扩展的文件和修改过的localconf.php
提交并推送到远程服务器。
在localconf.php
的末尾包含localconf_local.php
(被忽略)。
@include('localconf_local.php');
它允许覆盖数据库凭据或自定义的ImageMagick
路径,而无需更改原始的localconf.php
。团队中的每个开发人员当然会将自己的值写入localconf_local.php
。
.gitignore
中忽略的典型TYPO3文件夹应该在每个实例中手动创建,例如:
typo3temp
fileadmin/user_upload
当然,您还需要下载TYPO3源代码(typo3
,t3lib
文件夹)- 没有必要将它们放在版本控制下。
其他内容,如uploads
应该从远程手动下载,因此最好编写脚本打包它,并让每个开发人员可以通过某个链接下载它。您不能将其添加到git repo中,因为这些文件仅在创建内容元素时才会创建,因此如果不将它们忽略,您很快就会面临大量合并冲突的风险。
@include('localconf_local.php');
这部分自 v6.0 起已不再有效/可能 - 但现在有更好的(官方)方法,请参见此答案:https://dev59.com/jGMl5IYBdhLWcg3wgnIE - Florian Fida我想在biesiors的非常好的答案上添加一些方面:从我的经验来看,最好的策略是将fileadmin/
和typo3conf/
放在版本控制下,最初不要放其他内容。如果您使用扩展程序,则只能使用TER存储库中的最新版本。扩展程序配置(typoscript设置,locallang值)将放置在fileadmin/中的外部文件夹中。示例文件夹结构:
fileadmin/
- css/
- images/
- javascript/
- scripts/
- templates/
- - html/
- - templavoila/
- - typoscript/
- - xml/
不要将任何typoscript信息存储在数据库中,因为它无法从那里进行版本控制。需要时请放置.gitignore文件。我们还忽略typo3conf/ext/和typo3conf/l10n/。为什么?如果编写自己的扩展名(或修改现有扩展名),则会将typo3conf/ext/my_extensionname/添加到另一个存储库中。这样,扩展本身可以得到很好的维护,特别是在多个项目中使用时。未更改的扩展程序根本不需要进行版本控制。遵循@include('localconf_local.php')建议-这是很好的做法。
这种设置对编码纪律要求更高,但你将得到回报!我们在两人团队中已经成功执行了12个以上的项目。typo3conf/ext/
中的 .gitignore
忽略。 - Mateng