Подтвердить что ты не робот

Невозможно нажать на изменения после использования git reset --hard

Я ошибся и внес некоторые изменения в git, которые я не должен был совершать. После того, как я совершил коммит, я нажал свои изменения. Затем я использовал следующие команды, чтобы попробовать и reset мои изменения.

 git reset --hard head

Теперь я хочу нажать эту "reset" в удаленный репозиторий с помощью этой команды:

git push MyBranch

Но я получаю эту ошибку:

remote: error: denying non-fast-forward refs/heads/branch (you should pull first)

Я попытался использовать эту команду без каких-либо успехов:

git push -f "origin" 

Любая идея, что я могу сделать?

4b9b3361

Ответ 1

git push -f origin myBranch 

должен работать (если вы знаете, что это может быть опасно, если MyBranch уже был выбран другими в своем собственном репо)

Примечание: если ваше дистанционное репо ('origin') имеет config с

receive.denyNonFastForwards true

он откажется от любого неуправляемого нажатия (даже при принудительном).
См. "Есть ли способ настроить хранилище git для отклонения 'git push -force'?".


OP user654019 сообщает

Мне удалось решить проблему на этот раз, установив denyNonFastForwards в false и используя -f, чтобы заставить push

Если OP не имел доступа к репо, ему/ей пришлось бы:

Пример:

$ git revert -m 1 [sha_of_C8]
Finished one revert.
[master 88edd6d] Revert "Merge branch 'jk/post-checkout'"
 1 files changed, 0 insertions(+), 2 deletions(-)

revert a merge

Полное обсуждение того, как вернуть слияние, можно найти .

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

Ответ 2

Вам нужно указать, какой запрос вы хотите нажать:

git push -f origin MyBranch