Я столкнулся с конфликтом слияний. Как я могу прервать слияние?

После долгого сражения и попробуйте большинство (если не все) параметров, перечисленных здесь, я, наконец, избавился от этой ошибки, удалив неиспользуемый JAR - ios-server-0.6.5-jar-with-dependencies.jar в моем пути сборки и используя комбинацию FF34 и selenium jars 2.48.2.

Просто хотел опубликовать это как еще один вариант, если кто-то столкнется с этой изнурительной проблемой.

2314
задан Rann Lifshitz 31 May 2018 в 02:18
поделиться

7 ответов

Я думаю, что это git reset, Вам нужно.

Остерегаются того git revert средства что-то совсем другое от, скажем, svn revert - в Подрывной деятельности, возвращаться отменит Ваши (незафиксированные) изменения, возвращая файл текущей версии из репозитория, тогда как git revert "отмены" фиксация.

git reset должен сделать эквивалент svn revert, то есть, отменить Ваши нежелательные изменения.

89
ответ дан Peter Mortensen 31 May 2018 в 02:18
поделиться
  • 1
    Запрос. QueryString [пустой указатель] == " customise" будет работать также. – Toft 28 June 2012 в 07:13

В этом конкретном варианте использования Вы действительно не хотите прерывать слияние, просто разрешать конфликт конкретным способом.

нет никакой конкретной потребности сбросить и выполнить слияние с различной стратегией, также. Конфликты были правильно выделены мерзавцем и требованием, чтобы признать, что другие изменения сторон только для этого файла.

Для необъединенного файла в мерзавце конфликта делает доступным общая база, локальные и удаленные версии файла в индексе. (Это - то, где они читаются из для использования в различном инструменте с 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
74
ответ дан CB Bailey 31 May 2018 в 02:18
поделиться

Начиная с Вашего pull было неудачно тогда HEAD (не HEAD^), последняя "допустимая" фиксация на Вашем ответвлении:

git reset --hard HEAD

другая часть, которую Вы хотите, должна позволить их изменениям переопределить Ваши изменения.

Более старые версии мерзавца позволили Вам использовать "их" стратегия слияния:

git pull --strategy=theirs remote_branch

, Но это было с тех пор удалено, как объяснено в это сообщение Junio Hamano (специалист по обслуживанию Мерзавца). Как отмечено в ссылка , вместо этого Вы сделали бы это:

git fetch origin
git reset --hard origin
2053
ответ дан Robin Daugherty 31 May 2018 в 02:18
поделиться
  • 1
    После поиска вокруг, похоже, что значения словаря QueryString только заполняются с параметрами, которые имеют и имя И значение так HasKey won' t работа. – John Sheehan 28 June 2010 в 06:57

Для сценария как это я сделал git fetch и git pull, затем понял, что восходящее ответвление не было основным ответвлением, которое привело к нежелательным конфликтам.

git reset --merge 

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

25
ответ дан 22 November 2019 в 19:55
поделиться

Если ваша версия 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 после завершения слияния или его прерывания.

1863
ответ дан 22 November 2019 в 19:55
поделиться

Альтернативой, которая сохраняет состояние рабочей копии, является:

git stash
git merge --abort
git stash pop

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

17
ответ дан 22 November 2019 в 19:55
поделиться

Начиная с Git 1.6.1.3 git checkout может проверять с любой стороны слияния:

git checkout --theirs _widget.html.erb
18
ответ дан 22 November 2019 в 19:55
поделиться
Другие вопросы по тегам:

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