Я делал некоторую работу дома за выходные и использовал мерзавца для слияния, код возвращается к моему офисному компьютеру (соединенный через vpn) и нашел некоторые очень ужасные проблемы слияния.
В первую очередь, слияние должно было быть очень чистым, поскольку все фиксировалось в офисе в пятницу, и я только внес изменения в свой домашний компьютер в субботу и в воскресенье. Но когда я вытянул изменения в своем офисном компьютере, я закончил с тонной конфликтов слияния.
Я очистил конфликты слияния, но затем я нашел, что многие файлы (от того, что я могу сказать любому файлу, что переключил выходные) имели <<<<<<< HEAD" and ">>>>>>> D1/master
всюду по файлам. Например:
diff --git a/web/Web.Controller/Helpers/FormsAuthentication.cs b/web/Web.Controller/Helpers/FormsAuthentication.cs
index 8571f53..4a9c9fc 100644
-- a/web/Web.Controller/Helpers/FormsAuthentication.cs
++ b/web/Web.Controller/Helpers/FormsAuthentication.cs
@@ -10,7 +10,10 @@
/// </summary>
public class FormsAuthenticationUtility : IAuthenticationUtility
{
<<<<<<< HEAD
=======
>>>>>>> D1/master
#region IAuthentication Members
/// <summary>
Я смог зафиксировать использование кода kdiff
путем сравнения исходному коду, скопированному с моего домашнего компьютера, но это просто кажется полностью испорченным.
Какие-либо идеи, что продолжается?
Я столкнулся с той же проблемой, когда файлы Windows были объединены с моим репозиторием Linux, так что это была проблема CRLF. Я смог исправить это с помощью этого ответа. IIRC это должно быть сделано до слияния, но это было давно, и, честно говоря, я забыл записать это...
У меня была проблема, подобная этой, возникала при переходе с Windows на * Nix и обратно из-за разной обработки символов новой строки. Git может улавливать эти различия и по какой-либо причине не может объединиться.
Может быть, попробовать - ignore-space-at-eol
?
Редактировать:
Пробелы на самом деле имеют значение при слиянии. Это может не иметь значения в вашем конкретном случае, но есть контексты, в которых это может иметь значение. Этот вопрос , кажется, касается того, что нужно сделать для разрешения конфликтов намного лучше, чем я когда-либо мог.
Похоже на проблему CRLF при слиянии: это вызвало недавнее обсуждение здесь . Вы также можете попытаться создать сокращенный вариант с несколькими файлами, чтобы выяснить, что именно вызывает эту проблему.