Как правильно сделать push после --amend
Работая с git я сделал commit. После чего сделал push его на githab. Через некоторое время решил сделать исправление и попробовал сделать команду commit --amend. Раньше ей не пользовался, а просто делал новый коммит. Команда прошла и решил так же сделать push. Но git ругнулся на конфликт - файлы изменились. Я думал что он просто заменит исправленный коммит на удаленной ветке. Как теперь запушить его на github? Ветку, с момента первого пуша, с гита точно еще никто не скачивал и не работал на ней, коммиты никто не добавлял.
Ответы (2 шт):
В инструкции намекают на pull. Она делает fetch и потом слияние. Потом можно будет и push делать.
Сервер :
A -> B
Вы с commit --amend :
A -> B'
\
\-> B
Делаем pull и push :
A -> B' -> C
\ ^
\-> B -/
А удалить коммит всегда успеете. После того, как все удалённые контакты на коммит B уйдут дальше.
git push --force-with-lease. Или менее безопасный git push --force.
Обычный пуш может только добавлять новые коммиты. А --amend по сути удаляет один коммит и добавляет другой, поэтому без force[-with-lease] такое не запушить.