Ответ 1
Em, git reset --hard origin/master
?
Я пытаюсь выполнить сквош слияния из ветки девелла в мастер.
stefanos-imac:trunk borini$ git merge --squash devel
CONFLICT (content): Merge conflict in test1
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at least 2224 and retry the command.
Squash commit -- not updating HEAD
Automatic merge failed; fix conflicts and then commit the result.
достаточно справедливо.
stefanos-imac:trunk borini$ git config merge.renameLimit 999999
Затем я пытаюсь отменить слияние и переделать его с более высоким пределом
stefanos-imac:trunk borini$ git merge --abort
fatal: There is no merge to abort (MERGE_HEAD missing).
Хорошо, возможно, мне нужно сделать то, что он говорит, и просто повторно запустить команду слияния
stefanos-imac:trunk borini$ git merge --squash devel
fatal: 'merge' is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as
appropriate to mark resolution and make a commit, or use 'git commit -a'.
oh git, почему вы такой git?
Насколько это важно, кто-нибудь знает, как выйти из этой ситуации?
Em, git reset --hard origin/master
?
Современный способ отмены слияния (но это работает только при наличии MERGE_HEAD):
git merge --abort
И немного более старый способ, который будет работать в этом случае (MERGE_HEAD отсутствует):
git reset --merge
Путь старой школы, описанный в принятом ответе (предупреждение: отменит все ваши локальные изменения):
git reset --hard
Итак, обратите внимание, что git merge --abort
эквивалентен только git reset --merge
, если присутствует MERGE_HEAD
. Это можно прочитать в справке git для команды merge.
git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.
После неудачного слияния, когда нет MERGE_HEAD
, сбойное слияние может быть отменено с помощью git reset --merge
, но необязательно с git merge --abort
.
git merge --abort
также выполнит трюк. Немного быстрее, чем ввести полную команду git reset.
Прерывание также работает с rebase
и cherry-pick
.