在大型团队和版本控制中使用单个CSS文件的方法是什么?

时间:2011-02-08 03:45:42

标签: html css svn version-control magento

我们在Magento平台上工作,我们的前端开发人员都在同一个CSS样式表上工作。此样式表附带了许多现有样式。大多数时候,我告诉他们在底部放置任何其他样式,以便更容易合并和一切。当您希望将某些样式与样式表中已存在的选择器放在一起时,这并不总是有效。

我们似乎在开发人员没有正确管理冲突和覆盖其他人的代码方面遇到很多问题。显然,当你知道其他人已完成文件以减少冲突的可能性时,它总是最好尝试处理文件,但显然如果有一个以上的开发人员在网站上工作并且只有一个CSS文件会遇到很多冲突。

我正在寻找其他人管理此方法以及如何最大限度地减少这些开发人员所遇到的冲突数量的一些想法。

4 个答案:

答案 0 :(得分:12)

  1. 没有单个CSS文件。将一堆小CSS文件合并并缩小为单个文件以进行部署,但在开发期间逻辑上将样式分开。

    正如@JosephMastey在下面建议的那样,我个人将每个不同风格的网站页面分开一个文件。在样式表中,我倾向于将选择器从更通用到更具体,并将组选择器排在一起(例如,所有table#foo ...选择器都是连续的。)

  2. 使用像Git这样理智的版本控制系统,不需要您签出或锁定文件,而是允许同时编辑智能合并。

    编辑:在某些时候,您已经培训并信任您的开发人员。唯一能够最终帮助那些反复运行彼此工作并严重合并编辑的开发人员的方法是教他们不要这样做。

答案 1 :(得分:4)

如果每个人都在编辑文件的相同部分(即结尾),那么编辑冲突的可能性就会大大增加。

我会说让CSS自然而然地走到哪里。如果某人正在编辑一个部分而另一个人正在编辑整个其他部分,那么任何体面的修订控制系统都会在有人更新时自动合并大部分更改,并且冲突会更少。

答案 2 :(得分:1)

我同意“没有一个CSS文件”的观点。 Magento模块每个都有自己的样式表,当然你已经将不相关的任务分成独立的模块了不是吗?如果Magento为目录,结账,客户等提供单独的表格,我更喜欢它,但遗憾的是它没有,你必须自己做,也许准备一个空白的主题与他们。

根据开发人员的说法分解是没有意义的。开发者来来去去,分配不同的任务。

Magento还包括CSS& JS合并,所以你不必担心有很多张。还有Fooman Speedstermod_pagespeed

答案 3 :(得分:1)

根据我的经验,单个开发人员应该在项目上工作,直到它成熟到足以允许外部帮助。该单个开发人员应设置要在整个应用程序中使用的指南和标准样式,以便人们无需为每个元素添加新样式。尝试让初始开发人员在最初添加到存储库时检查所有新样式表更改,以便让项目新手的开发人员了解存在的实用程序类或约定。

如果你有一些你总是从头开始的股票系统主题也会有所帮助 - 这样人们就知道每个项目开始时的得分,并且没有理由搞乱你有组织的CSS:)

正如@cHao指出的那样,当一大堆开发人员参与其中时,请确保他们永远不会直接添加到文件的末尾。这是我们经历并且可以轻易避免的冲突的最大原因。