Слияние мерзавца: почему я получаю много конфликтов слияния после изменения источника и на Linux и на окнах?

Я делал некоторую работу дома за выходные и использовал мерзавца для слияния, код возвращается к моему офисному компьютеру (соединенный через 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 путем сравнения исходному коду, скопированному с моего домашнего компьютера, но это просто кажется полностью испорченным.

Какие-либо идеи, что продолжается?

6
задан Rob Hruska 15 March 2012 в 13:27
поделиться

3 ответа

Я столкнулся с той же проблемой, когда файлы Windows были объединены с моим репозиторием Linux, так что это была проблема CRLF. Я смог исправить это с помощью этого ответа. IIRC это должно быть сделано до слияния, но это было давно, и, честно говоря, я забыл записать это...

4
ответ дан 17 December 2019 в 02:21
поделиться

У меня была проблема, подобная этой, возникала при переходе с Windows на * Nix и обратно из-за разной обработки символов новой строки. Git может улавливать эти различия и по какой-либо причине не может объединиться.

Может быть, попробовать - ignore-space-at-eol ?

Редактировать:

Пробелы на самом деле имеют значение при слиянии. Это может не иметь значения в вашем конкретном случае, но есть контексты, в которых это может иметь значение. Этот вопрос , кажется, касается того, что нужно сделать для разрешения конфликтов намного лучше, чем я когда-либо мог.

1
ответ дан 17 December 2019 в 02:21
поделиться

Похоже на проблему CRLF при слиянии: это вызвало недавнее обсуждение здесь . Вы также можете попытаться создать сокращенный вариант с несколькими файлами, чтобы выяснить, что именно вызывает эту проблему.

1
ответ дан 17 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: