git: конфликтует слияние по новой строке в конце файла - PullRequest
0 голосов
/ 09 сентября 2011

Я часто получаю конфликты при перетягивании (слиянии) в 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

Хуже; после того, как я вручную разрешаю файлы и добавляю конфликтующие файлы, кажется, что ничего не фиксируется (по отношению к концу файлов), поэтому, когда я делаю извлечение снова, я получаю те же самые конфликты. Какие-нибудь решения?

1 Ответ

1 голос
/ 09 сентября 2011

Эти различия возникают из-за того, что разные ОС имеют разное представление о том, чем заканчивается строка.

Git обычно хорошо справляется с этим, устанавливая значение конфигурации core.eol в значение «native». Однако, если у разработчика по какой-то причине нет этого параметра или происходит фиксация файлов в стиле UNIX из Windows или наоборот, вы можете получить эти проблемы.

Лучше всего найти источник проблемы и разобраться с ней, в противном случае вы можете попытаться установить разные значения для core.eol (lf / crlf) и посмотреть, исправит ли это это. Если это происходит только по определенному пути, а не по всему проекту, лучше определить файл gitattributes для этого пути.

...