Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Фиксация ошибки слияния Git невозможна, потому что у вас есть неслитые файлы

Автор вопроса: KiarashОтветов: 7

Я забыл git pull свой код перед его редактированием; когда я зафиксировал новый код и попытался нажать, я получил сообщение об ошибке, которое невозможно.

В этот момент я сделал git pull, в результате которого были выделены некоторые файлы с конфликтами. Я удалил конфликты, но не знаю, что дальше делать.

Я попытался git commit снова, но он говорит, что фиксация невозможна, потому что у вас есть не объединенные файлы:

error: Committing is not possible because you have unmerged files.
  • Возможно, вы захотите изменить рабочий процесс git, чтобы никогда не попасть в эту ситуацию. У меня нет времени вдаваться в подробности прямо сейчас, но я имею в виду следующее: git merge -X theirs или git pull -X theirs. - Наверное, не то и другое, но я не уверен. Henke 17.12.2020

gitgit-merge

Ответы

Ответ 1 · рейтинг 297 · jonnystoten

Если вы устранили конфликты, вам нужно добавить файлы в сцену с помощью git add [filename], затем зафиксируйте как обычно.

Ответ 2 · рейтинг 61 · Prabhakar Undurthi

Вам нужно сделать две вещи. Сначала добавьте изменения с помощью

git add .
git stash

git checkout <some branch>

Это должно решить вашу проблему так, как она решила для меня.

Ответ 3 · рейтинг 12 · muman

Вы можете использовать git stash для сохранения текущего репозитория перед тем, как делать коммит, который вы хотите сделать (после слияния изменений из восходящего репозитория с git stash pop). Мне пришлось сделать это вчера, когда у меня была такая же проблема.

Ответ 4 · рейтинг 4 · Priyanka Arora

Эта ошибка возникает, когда вы разрешаете конфликты, но файл все равно нужно добавить в рабочую область. git add. решит это. Затем попробуйте зафиксировать и слить.

Ответ 5 · рейтинг 4 · macabeus

Начиная с git 2.23 (август 2019 г.) у вас теперь есть ярлык для этого: git restore --staged [filepath]. С помощью этой команды вы можете игнорировать конфликтующий файл, не добавляя и не удаляя его.

Пример:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

Ответ 6 · рейтинг 1 · Yann VR

У меня была аналогичная проблема, которая сводилась к удалению файлов по "несвязанным путям"

Эти файлы пришлось удалить с помощью git rm

Ответ 7 · appdesigns

Итак, из ошибки выше. Все, что вам нужно сделать, чтобы исправить эту проблему, - это вернуть свой код. (git revert HEAD) затем git pull, а затем повторите свои изменения, затем снова git pull, и он смог выполнить фиксацию или слияние без ошибок.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы