10

你好我一直想解决这个问题有一段时间了,但我想使用 git 来维护一些typo3开发站点。我做了一些挖掘,关于该主题的最丰富的信息(铬翻译网站)信息尚不清楚,但确实让我思考。我想知道如何设置一个 git 管理的 repo,如果有一些/其他文件夹在设置 repo 时我应该忽略,我应该注意什么,最佳实践等。我已经决定每个版本,数据库转储将单独完成,这与里程碑相对应,因为到目前为止我不确定如何处理 CMS 版本控制的这方面。

4

2 回答 2

19

有典型的.gitignore

/fileadmin/user_upload/
/fileadmin/_temp_/

/uploads/

/typo3conf/temp_CACHED*
/typo3conf/temp_fieldInfo.php
/typo3conf/localconf_local.php

/typo3/
/t3lib/
/typo3temp/

请记住,TYPO3git您一起使用时,不应在遥控器上安装任何扩展Extension Manager

而是在本地导入 ext,在本地安装它,然后提交并推送 ext 的文件并修改localconf.php到远程服务器。

localconf.php包含的末尾localconf_local.php(忽略)

@include('localconf_local.php');

它将允许覆盖即。数据库的凭据,或自定义ImageMagick路径,而不更改原始localconf.php. 团队中的每个开发人员当然会将自己的值写入localconf_local.php.

.gitignore应在每个实例中手动创建典型的 TYPO3 文件夹,即。

typo3temp

fileadmin/user_upload

当然,您还需要下载 TYPO3 sorces ( typo3,t3lib文件夹) - 将它们置于版本控制之下没有更大的意义。

其他的东西,比如uploads应该从远程手动下载,所以最好写一个脚本来打包它,每个开发者都可以通过一些链接下载它。您不能将其添加到 git repo,因为这些文件只是在创建内容元素时创建的,所以如果您不忽略它们,您很快就会面临巨大的合并冲突的风险。

于 2012-08-10T16:35:40.410 回答
10

我想在 biesiors 非常好的答案中添加一些方面:根据我的经验,最好的策略是将版本控制置于版本控制之下fileadmin/typo3conf/一开始就没有别的了。如果您使用扩展,您将因此只使用来自 TER 存储库的最新版本。扩展配置(打字稿设置、locallang 值)将放置在 fileadmin/ 中的外部文件中。示例文件夹结构:

fileadmin/
- css/
- images/
- javascript/
- scripts/
- templates/
- - html/
- - templavoila/
- - typoscript/
- - xml/

不要在数据库中存储任何打字信息 - 它不能从那里进行版本控制。

.gitignore放在需要的地方。我们也忽略typo3conf/ext/typo3conf/l10n/。为什么?如果我们编写自己的扩展(或修改现有的),我们会将其添加typo3conf/ext/my_extensionname/到另一个存储库。这样,扩展本身可以得到很好的维护,尤其是在多个项目中使用时。并且根本不需要对未更改的扩展进行版本控制。

遵循@include('localconf_local.php');建议 - 这是一个很好的做法。

这种设置增加了对编码纪律的更高要求,但你会得到回报!现在,我们已经成功地在两个人的团队中完成了 12 个以上的项目。

于 2012-08-10T17:27:55.407 回答