Git 在合并编译文件时是否有问题



所以我们编译成 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 mergegit rebase并且存在冲突时,只需在源代码级别处理冲突,重新编译该文件,您就可以假设一切都很好。如果不是很好,那么你就编译错了!

最新更新