После долгого сражения и попробуйте большинство (если не все) параметров, перечисленных здесь, я, наконец, избавился от этой ошибки, удалив неиспользуемый JAR - ios-server-0.6.5-jar-with-dependencies.jar
в моем пути сборки и используя комбинацию FF34
и selenium jars 2.48.2
.
Просто хотел опубликовать это как еще один вариант, если кто-то столкнется с этой изнурительной проблемой.
Я думаю, что это git reset
, Вам нужно.
Остерегаются того git revert
средства что-то совсем другое от, скажем, svn revert
- в Подрывной деятельности, возвращаться отменит Ваши (незафиксированные) изменения, возвращая файл текущей версии из репозитория, тогда как git revert
"отмены" фиксация.
git reset
должен сделать эквивалент svn revert
, то есть, отменить Ваши нежелательные изменения.
В этом конкретном варианте использования Вы действительно не хотите прерывать слияние, просто разрешать конфликт конкретным способом.
нет никакой конкретной потребности сбросить и выполнить слияние с различной стратегией, также. Конфликты были правильно выделены мерзавцем и требованием, чтобы признать, что другие изменения сторон только для этого файла.
Для необъединенного файла в мерзавце конфликта делает доступным общая база, локальные и удаленные версии файла в индексе. (Это - то, где они читаются из для использования в различном инструменте с 3 путями git mergetool
.) Можно использовать git show
для просмотра их.
# common base:
git show :1:_widget.html.erb
# 'ours'
git show :2:_widget.html.erb
# 'theirs'
git show :3:_widget.html.erb
самый простой способ разрешить конфликт для использования удаленной версии дословно:
git show :3:_widget.html.erb >_widget.html.erb
git add _widget.html.erb
Или, с мерзавцем> = 1.6.1:
git checkout --theirs _widget.html.erb
Начиная с Вашего pull
было неудачно тогда HEAD
(не HEAD^
), последняя "допустимая" фиксация на Вашем ответвлении:
git reset --hard HEAD
другая часть, которую Вы хотите, должна позволить их изменениям переопределить Ваши изменения.
Более старые версии мерзавца позволили Вам использовать "их" стратегия слияния:
git pull --strategy=theirs remote_branch
, Но это было с тех пор удалено, как объяснено в это сообщение Junio Hamano (специалист по обслуживанию Мерзавца). Как отмечено в ссылка , вместо этого Вы сделали бы это:
git fetch origin
git reset --hard origin
Для сценария как это я сделал git fetch
и git pull
, затем понял, что восходящее ответвление не было основным ответвлением, которое привело к нежелательным конфликтам.
git reset --merge
Эта вернувшаяся спина, не сбрасывая мои локальные изменения.
Если ваша версия git> = 1.6.1, вы можете использовать git reset --merge
.
Кроме того, как упоминает @Michael Johnson, если ваша версия git> = 1.7.4, вы также можете использовать git merge --abort
.
Как всегда, убедитесь, что у вас нет незафиксированных изменений, прежде чем начинать слияние.
Из справочной страницы git merge
git merge --abort
эквивалентен git reset --merge
, когда присутствует MERGE_HEAD
.
MERGE_HEAD
присутствует, когда выполняется слияние.
Также относительно незафиксированных изменений при запуске слияния:
Если у вас есть изменения, которые вы не хотите фиксировать перед началом слияния, просто git stash
их перед слиянием и git stash pop
после завершения слияния или его прерывания.
Альтернативой, которая сохраняет состояние рабочей копии, является:
git stash
git merge --abort
git stash pop
Я обычно не советую этого делать, потому что это фактически подобно слиянию в Subversion, так как при этом отбрасываются связи ветвей в следующем коммите.
Начиная с Git 1.6.1.3 git checkout
может проверять с любой стороны слияния:
git checkout --theirs _widget.html.erb