Почему Git создает "пустые" конфликты?
Зачем Git создавать конфликт, который выглядит так:
<<<<<<< mouseLabelCallbacks
const QMap<Qt::MouseButton, QString> TLabel::mMouseButtons = {
{Qt::NoButton, QStringLiteral("NoButton")}, {Qt::LeftButton, QStringLiteral("LeftButton")}, {Qt::RightButton, QStringLiteral("RightButton")},
{Qt::MidButton, QStringLiteral("MidButton")}, {Qt::BackButton, QStringLiteral("BackButton")}, {Qt::ForwardButton, QStringLiteral("ForwardButton")},
{Qt::TaskButton, QStringLiteral("TaskButton")}, {Qt::ExtraButton4, QStringLiteral("ExtraButton4")}, {Qt::ExtraButton5, QStringLiteral("ExtraButton5")},
{Qt::ExtraButton6, QStringLiteral("ExtraButton6")}, {Qt::ExtraButton7, QStringLiteral("ExtraButton7")}, {Qt::ExtraButton8, QStringLiteral("ExtraButton8")},
{Qt::ExtraButton9, QStringLiteral("ExtraButton9")}, {Qt::ExtraButton10, QStringLiteral("ExtraButton10")}, {Qt::ExtraButton11, QStringLiteral("ExtraButton11")},
{Qt::ExtraButton12, QStringLiteral("ExtraButton12")}, {Qt::ExtraButton13, QStringLiteral("ExtraButton13")}, {Qt::ExtraButton14, QStringLiteral("ExtraButton14")},
{Qt::ExtraButton15, QStringLiteral("ExtraButton15")}, {Qt::ExtraButton16, QStringLiteral("ExtraButton16")}, {Qt::ExtraButton17, QStringLiteral("ExtraButton17")},
{Qt::ExtraButton18, QStringLiteral("ExtraButton18")}, {Qt::ExtraButton19, QStringLiteral("ExtraButton19")}, {Qt::ExtraButton20, QStringLiteral("ExtraButton20")},
{Qt::ExtraButton21, QStringLiteral("ExtraButton21")}, {Qt::ExtraButton22, QStringLiteral("ExtraButton22")}, {Qt::ExtraButton23, QStringLiteral("ExtraButton23")},
{Qt::ExtraButton24, QStringLiteral("ExtraButton24")},
};
=======
>>>>>>> development
Как это в конфликте, когда нет ничего между ===
а также >>>
?
2 ответа
Предполагая, что у вас все еще есть конфликт, чтобы слиться, и вы хотите увидеть, что происходит, сделайте следующее:
git config merge.conflictStyle diff3
git checkout -m path/to/conflicted/file.ext
(или просто:
git checkout -m --conflict=diff3 path/to/conflicted/file.ext
- первый устанавливает все будущие конфликты, чтобы быть в diff3
формат).
Сравните то, что в нем сейчас, с тем, что было в нем раньше. Обратите внимание на наличие |||||||
раздел:
<<<<<<< mouseLabelCallbacks
const QMap<Qt::MouseButton, QString> TLabel::mMouseButtons = {
{Qt::NoButton, QStringLiteral("NoButton")}, {Qt::LeftButton, QStringLiteral("LeftButton")}, {Qt::RightButton, QStringLiteral("RightButton")},
{Qt::MidButton, QStringLiteral("MidButton")}, {Qt::BackButton, QStringLiteral("BackButton")}, {Qt::ForwardButton, QStringLiteral("ForwardButton")},
{Qt::TaskButton, QStringLiteral("TaskButton")}, {Qt::ExtraButton4, QStringLiteral("ExtraButton4")}, {Qt::ExtraButton5, QStringLiteral("ExtraButton5")},
{Qt::ExtraButton6, QStringLiteral("ExtraButton6")}, {Qt::ExtraButton7, QStringLiteral("ExtraButton7")}, {Qt::ExtraButton8, QStringLiteral("ExtraButton8")},
{Qt::ExtraButton9, QStringLiteral("ExtraButton9")}, {Qt::ExtraButton10, QStringLiteral("ExtraButton10")}, {Qt::ExtraButton11, QStringLiteral("ExtraButton11")},
{Qt::ExtraButton12, QStringLiteral("ExtraButton12")}, {Qt::ExtraButton13, QStringLiteral("ExtraButton13")}, {Qt::ExtraButton14, QStringLiteral("ExtraButton14")},
{Qt::ExtraButton15, QStringLiteral("ExtraButton15")}, {Qt::ExtraButton16, QStringLiteral("ExtraButton16")}, {Qt::ExtraButton17, QStringLiteral("ExtraButton17")},
{Qt::ExtraButton18, QStringLiteral("ExtraButton18")}, {Qt::ExtraButton19, QStringLiteral("ExtraButton19")}, {Qt::ExtraButton20, QStringLiteral("ExtraButton20")},
{Qt::ExtraButton21, QStringLiteral("ExtraButton21")}, {Qt::ExtraButton22, QStringLiteral("ExtraButton22")}, {Qt::ExtraButton23, QStringLiteral("ExtraButton23")},
{Qt::ExtraButton24, QStringLiteral("ExtraButton24")},
};
||||||| merged common ancestors
(something appears here, but I cannot guess what)
=======
>>>>>>> development
Это говорит вам, что в >>>>>>> development
, действие было удалить оригинальное "что-то", в то время как в <<<<<<< mouseLabelCallbacks
, действие должно было заменить исходное "что-то" новым разделом кода.
Вы должны выбрать, какое из этих разрешений является правильным: только для удаления или для удаления и замены. Обычно это последнее, но иногда это первое или даже третье.
Вы / кто-то еще можете отредактировать и зафиксировать файл в другом редакторе с разными file encoding
, Это могло вызвать проблему.
Попробуйте выяснить формат кодировки файла и изменить его на правильный формат. Там могут быть инструменты (может быть Notepad++, открыть файл с помощью Notepad++, чтобы увидеть кодировку). Тогда вы можете видеть буквы, о которых говорит git.