所以我们有大量的文件可以编译成 1 行 css。尝试合并此编译文件时,它一直失败。我知道我们可以使用 git gui 或 gitmergetool 手动修复冲突。但我想知道这对于一行上的编译文件是否很常见?还有其他人遇到这个问题吗?
谢谢史蒂夫
如果文件只有一行长,则合并效果不佳,因为合并是逐行进行的。
合并旨在处理“源”文件,即人工编辑的文件。编译的 CSS 文件不是源文件。
你有几个不同的选择:
合并原始 CSS 后,通过重新编译并检入重新编译的版本来解决冲突。您需要在此文件上设置 git 属性以merge
取消设置该属性,因此它不会尝试合并。
不要将编译后的 CSS 检入 Git。
修复你的 git 属性:
comiled/*.css -merge
简短的回答是肯定的,但这并不是 git 的错。
如需长答案,请查看man diff
:
DIFF(1) User Commands DIFF(1)
NAME
diff - compare files line by line
基本上,那里的每个差异工具都使用换行符来确定发生更改的位置。这正是 Unix / POSIX 的工作方式,并且由于所有 diff 工具都被设计为像 一样工作diff
,所以它们都会遇到这个问题。
一般来说,编译后的文件不应该真正被检入源代码管理,但即使是这样,您也不应该担心这些合并冲突。当你做一个git merge
orgit rebase
并且有冲突时,只需在源代码级别处理冲突,重新编译该文件,你就可以假设它一切都好。如果它不是很好,那么你编译的东西是错误的!