Это мое понимание (также из принятого ответа), что git push -force перезапишет все данные на удаленной ветви локальным.
Исправляя фиксации, вы уже перезаписали свою историю git (изменив SHA1 фиксации). Amend
в порядке, если вы не опубликовали свои изменения, но как только вы это сделаете, вы действительно не должны обманывать историю, потому что, если кто-то уже получил ваши изменения, тогда, когда они попытаются снова вытащить, , Вместо того, чтобы вносить изменения в коммит, вы должны просто сделать новую фиксацию с изменениями.
Что произойдет, если я изменю сообщение фиксации и попытаюсь нажать без -f или -force?
Git откажется обновить удаленную ветку с вашей отраслью (имея поправку общественности коммит), потому что глава вашего филиала коммит не является прямым потомком нынешнего главу совершить филиал, что вы толкающие к.
Если бы это было не так, то два человека, которые толкали в один и тот же репозиторий примерно в одно и то же время, не знали бы, что в то же время произошел новый коммит, и тот, кто толкнул последний, потерял бы работу предыдущего без какого-либо из них, понимая это.
Почему принудительное нажатие после изменения сообщения фиксации необходимо?
Как я уже упоминал выше, git не позволит нажать на удаленную ветку. Вы можете прочитать это question. У этого есть много возможных обходных путей к этой проблеме.
не нажимайте силу, если вы не знаете, что делаете с git. – Stargateur
@ Начальник Да, я еще не пробовал по этой причине. –
'-force' больше не должен использоваться. Предпочитаете «--force-with-lease». Позор, что дольше писать ... – Philippe