Я попытался объединить файл в командной строке с помощью Git, когда появилось сообщение об ошибке, в котором говорилось, что объединение было прервано.
Я думал, что это конец, но потом понял, что в моих файлах есть gitmark. Вот так:
start =
expression
validchar =
[0-9a-zA-Z_?!+\-=@#$%^&*/.]
integer =
<<<<<<< HEAD
digits:[0-9]+
{ return digits.join(""); }
=======
sign:"-"* digits:[0-9]+
{ return sign + digits.join(""); }
>>>>>>> gh-pages
Файлы отредактированы не мной, и в них есть строки, в которые вставлены:
- ГОЛОВА после знаков "меньше чем" (
<<<<<<< HEAD
) - строки измененного кода
- строка знаков равенства (
=======
) - новая версия кода
- другая строка, начинающаяся со знаков "больше чем" и имя ветки (
>>>>>>> gh-pages
)
Что еще хуже, содержимое файла уже не в порядке. Кто-нибудь знает, как мне вернуть эти файлы в нормальное состояние, а изменения, которые я внес в ветку gh, объединить с основной веткой?
источник
gh-pages
версии, поэтому вы просто удалите материал из<<<<<<
в,======
а также удалите одну>>>>>>
строку, оставив две строки фактического кода между=======
и>>>>>>
.Обязательно начните с git status, чтобы увидеть, что у вас есть. Если вы прервали слияние (или слияние было прервано) и у вас есть конфликтующие файлы в рабочем каталоге, что-то пошло не так. Статус Git сообщит вам, где вы находитесь. После этого у вас есть несколько вариантов. Вы должны разрешить фиксацию слияния вручную, что может быть сложно, или с помощью такого инструмента, как:
Инструмент слияния будет работать, если ваши файлы указаны как нуждающиеся в слиянии.
Вы также можете выполнить одно из следующих действий:
Вы можете увидеть разные версии, используя синтаксис: 1: filename. См. Здесь объяснение. Но все вышесказанное предполагает, что «git status» показывает, что файлы нуждаются в слиянии.
Наконец, у вас всегда есть возможность:
источник
git status
поддержать совет «начни с того, чтобы увидеть, что у тебя есть»: в некоторых кругах модно обвинять Git в его воображаемой сложности, но на самом деле внимательного прочтения выводаgit status
достаточно, чтобы понять, что делать дальше. в самых распространенных ситуациях. Значит, действительно: если что не так, остановитесь, прочтитеgit status
, подумайте.Все ответы верны, но если вы хотите автоматически удалить все знаки конфликта и хотите автоматически менять файлы, чтобы сохранить HEAD, вы можете создать свой собственный сценарий bash, например: -
Пример сценария:
# vim /usr/sbin/solve.git
(Добавить после)
# chmod 755 /usr/sbin/solve.git
и просто запустите его в своем репозитории / пути GIT, чтобы решить:
$ cd <path_to_repo>
$ solve.git
Примечание: - Вышеупомянутые расширения файлов: php, css, js, html, svg и txt.
источник
В Atom у меня была проблема, что некоторые файлы не сохраняли разрешенные конфликты слияния на диск, поэтому мне пришлось вручную нажать «Сохранить». Мне потребовалось некоторое время, чтобы понять.
источник
Я исхожу из этого вопроса . И мне нужен был какой-то автоматический метод слияния наполовину объединенных файлов вместо ручного редактирования файлов ( как предлагается в других ответах, что мне не очень удобно делать ). Итак, вот что я в итоге сделал через netbeans, но это можно сделать и через командную строку.
Имейте в виду, что это работает только в том случае, если сразу после этого
merge->add->commit
вы поняли, что напортачили, и хотите повторить процесс заново.ШАГ 1: Вернитесь к предыдущей фиксации.
ШАГ 2. Повторите попытку слияния ветки
На этом этапе вам будет предложено окно слияния, если вы используете графический интерфейс. и вы можете продолжить как обычно.
источник