грубая ошибка притона мерзавца: поп притона мерзавца и закончился с конфликтами слияния

Я сделал a git stash pop и закончился с конфликтами слияния. Я удалил файлы из файловой системы и сделал a git checkout как показано ниже, но это думает, что файлы все еще не объединяются. Я затем пытался заменить файлы и делать a git checkout снова и тот же результат. Я событие пытался вызвать его с -f флаг. Любая справка ценилась бы!

chirag-patels-macbook-pro:haloror patelc75$ git status
app/views/layouts/_choose_patient.html.erb: needs merge
app/views/layouts/_links.html.erb: needs merge
# On branch prod-temp
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   db/schema.rb
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       unmerged:   app/views/layouts/_choose_patient.html.erb
#       unmerged:   app/views/layouts/_links.html.erb

chirag-patels-macbook-pro:haloror patelc75$ git checkout app/views/layouts/_choose_patient.html.erb
error: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
chirag-patels-macbook-pro:haloror patelc75$ git checkout -f app/views/layouts/_choose_patient.html.erb
warning: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
197
задан Chirag Patel 17 May 2010 в 05:33
поделиться

1 ответ

См. man git merge (КАК УСТРАНИТЬ КОНФЛИКТЫ):

Увидев конфликт, вы можете сделать две вещи:

  • Решить не сливаться. Единственная очистка, которая вам потребуется, это сброс индексного файла на коммит HEAD для отмены 2. и очистка изменений рабочего дерева, сделанных 2. и 3.; для этого можно использовать git-reset --hard.

  • Разрешить конфликты. Git пометит конфликты в рабочем дереве. Отредактируйте файлы и git добавит их в индекс. Используйте git commit, чтобы завершить сделку.

И при TRUE MERGE (чтобы увидеть, к чему относится 2. и 3.):

Когда не очевидно, как согласовать изменения, происходит следующее:

  1. Указатель HEAD остается прежним.

  2. Ссылка MERGE_HEAD устанавливается так, чтобы указывать на голову другой ветви.

  3. Пути, которые объединились чисто, обновляются как в индексном файле, так и в рабочем дереве.

  4. ...

Итак: используйте git reset --hard, если вы хотите удалить изменения тайника из вашего рабочего дерева, или git reset, если вы хотите просто очистить индекс и оставить конфликты в рабочем дереве для ручного слияния.

В разделе man git stash (OPTIONS, pop) вы можете прочитать в дополнение:

Применение состояния может закончиться неудачей из-за конфликтов; в этом случае оно не удаляется из списка stash. Вам нужно разрешить конфликты вручную и после этого вызвать git stash drop вручную.

219
ответ дан 23 November 2019 в 05:16
поделиться
Другие вопросы по тегам:

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