0

在 git 中拉(合并)文件末尾的换行符差异时,我经常遇到冲突。

冲突看起来像这样:

diff --cc httpdocs/about/faq.php
index 0ae3963,b5eb519..0000000
--- a/httpdocs/about/faq.php
+++ b/httpdocs/about/faq.php
@@@ -212,4 -211,4 +212,8 @@@ $_SESSION['activePage'] = 'about'
        </div><!-- end wrap -->

 -<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?>
++<<<<<<< HEAD
 +<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?>
++=======
++<?php require RESOURCE_PATH."page_elements".SLASH."footer.php"; ?>
++>>>>>>> 564e069cccfad98f818ec878a3b2526fd9430f8a

更差; 在我手动解决文件并添加冲突文件之后,似乎没有任何东西可以提交(相对于文件的结尾),所以当我再次拉动时,我得到了完全相同的冲突。有什么解决办法吗?

4

1 回答 1

1

这些差异是由于不同的操作系统对什么结束行有不同的想法而产生的。

Git 通常通过将 core.eol 的配置值默认为“native”来很好地处理这些问题。但是,如果开发人员由于某种原因没有该设置,或者从 Windows 提交 UNIX 样式的文件,反之亦然,您可能会遇到这些问题。

最好找到问题的根源并在那里进行处理,否则,您可以尝试为 core.eol (lf/crlf) 设置不同的值,看看是否能解决问题。如果它只发生在特定路径上,而不是整个项目上,则最好为该路径定义一个 gitattributes 文件。

于 2011-09-08T22:28:18.060 回答