Подтвердить что ты не робот

Git "Вы не закончили свое слияние", и ничего не сделать?

Всякий раз, когда я пытаюсь нажать Git, я получаю следующее:

You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you can merge.

Запуск git status Я получаю:

# On branch master
nothing to commit (working directory clean)

Или запустив git ls-files -u, я ничего не получаю.

Запуск git add . и повторная попытка не имеют никакого значения.

Что?

4b9b3361

Ответ 1

Хорошо, наконец, я нашел ответ: git commit -m "Test", по-видимому, зафиксировал это. Результатом стала пустая фиксация без каких-либо изменений. Даже Github показывает пустую фиксацию, но она работает.

Ответ 2

Вы закончили с пустым слиянием (два родителя) или просто с пустым фиксацией? В последнем случае вы могли бы удалить .git/MERGE_HEAD.

Обновление: Вместо того, чтобы вручную удалять MERGE_HEAD, вы также можете использовать git merge --abort (от git 1.7.4) или git reset --merge (от git 1.6.2).

Также стоит упомянуть, что, по крайней мере, из git 1.8.3 (возможно, раньше?), вы должны увидеть сообщение status, подобное этому, если выполняется фактическое слияние и его необходимо зафиксировать (если вы указали --no-commit, например):

# On branch master
# All conflicts fixed but you are still merging.
#   (use "git commit" to conclude merge)
#
nothing to commit, working directory clean

Если вы этого не видите и по-прежнему получаете предупреждение MERGE_HEAD, что-то перепутано, и вы должны, вероятно, просто --abort вернуться в чистое состояние.

Дополнительная информация из комментариев

Во время слияния git создается файл MERGE_HEAD в корне папки .git(рядом с HEAD, ORIG_HEAD, вероятно, FETCH_HEAD и т.д.) для отслеживания информации о текущем слиянии (в частности, SHA (s) фиксации (ов), которые сливаются в текущую HEAD). Если вы удалите это, git больше не будет думать о слиянии. Очевидно, что если слияние действительно выполняется, вы не захотите удалить этот файл.

Ответ 3

Используйте команду git reset без параметров. Документы