3

所以我们有大量的文件可以编译成 1 行 css。尝试合并此编译文件时,它一直失败。我知道我们可以使用 git gui 或 gitmergetool 手动修复冲突。但我想知道这对于一行上的编译文件是否很常见?还有其他人遇到这个问题吗?

谢谢史蒂夫

4

2 回答 2

2

如果文件只有一行长,则合并效果不佳,因为合并是逐行进行的。

合并旨在处理“源”文件,即人工编辑的文件。编译的 CSS 文件不是源文件。

你有几个不同的选择:

  • 合并原始 CSS 后,通过重新编译并检入重新编译的版本来解决冲突。您需要在此文件上设置 git 属性以merge取消设置该属性,因此它不会尝试合并。

  • 不要将编译后的 CSS 检入 Git。

修复你的 git 属性:

comiled/*.css -merge
于 2013-09-19T23:12:04.683 回答
1

简短的回答是肯定的,但这并不是 git 的错。

如需长答案,请查看man diff

DIFF(1)                          User Commands                          DIFF(1)

NAME
       diff - compare files line by line

基本上,那里的每个差异工具都使用换行符来确定发生更改的位置。这正是 Unix / POSIX 的工作方式,并且由于所有 diff 工具都被设计为像 一样工作diff,所以它们都会遇到这个问题。

一般来说,编译后的文件不应该真正被检入源代码管理,但即使是这样,您也不应该担心这些合并冲突。当你做一个git mergeorgit rebase并且有冲突时,只需在源代码级别处理冲突,重新编译该文件,你就可以假设它一切都好。如果它不是很好,那么你编译的东西是错误的!

于 2013-09-19T23:16:21.137 回答