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