Как перезаписать все коммиты после определенного коммита без необходимости использовать git pull?
Я git reset --hard <specific commit from earlier>
а затем сделал несколько новых коммитов. Когда я пытаюсь выдвинуть эти новые изменения, мне предлагается выполнить git pull, чтобы получить изменения, внесенные после <specific commit from earlier>
, Я пытаюсь просто написать об этих изменениях, git побуждает меня тянуть. Это простой проект, поэтому у меня только одна основная ветка. Какой лучший способ исправить?
2 ответа
При выполнении git reset --hard <earlier commit>
и затем, пытаясь это подтолкнуть, вы фактически пытаетесь изменить историю (удалив ее). Изменение истории не допускается, если только --force
или же --force-with-lease
(желательно) флаг дается на git push
,
Имейте в виду, что если у кого-то есть более старая версия ветки, вы можете уведомить их, чтобы они могли исправить свою копию в соответствии с новой историей.
Больше информации на man git-push.
Вы можете принудительно нажать ваши изменения с этой командой:
git push origin <your_branch_name> --force