История изменений
Если это самый последний коммит, вы можете просто сделать это:
git commit --amend
Это вызовет редактор с последним сообщением коммита и позволит вам отредактировать сообщение,(Вы можете использовать -m
, если хотите стереть старое сообщение и использовать новое.)
Pushing
А затем, когда вы нажимаете, сделайте следующее:
git push --force-with-lease <repository> <branch>
Или вы можете использовать «+»:
git push <repository> +<branch>
Или вы можете использовать --force
:
git push --force <repository> <branch>
Будьте осторожны при использовании этих команд.
Если кто-то еще отправил изменения в ту же ветку, вы, вероятно, захотите избежать уничтожения этих изменений.Опция --force-with-lease
является самой безопасной, потому что она прервется, если будут какие-либо изменения в восходящем направлении (
Если вы не укажете ветвь явно, Git будет использовать настройки push по умолчанию.Если заданная по умолчанию настройка подталкивания «совпадает», то вы можете уничтожить изменения в нескольких ветвях одновременно.
Извлечение / извлечение впоследствии
Любой, кто уже вытянул, будетТеперь получите сообщение об ошибке, и они должны будут обновить (при условии, что они не вносят никаких изменений самостоятельно), выполнив что-то вроде этого:
git fetch origin
git reset --hard origin/master # Loses local commits
Будьте осторожны при использовании reset --hard
. Если у вас есть изменениядля ветви эти изменения будут уничтожены.
Замечание об изменении истории
Уничтоженные данные - это просто старое сообщение о коммите, но --force
не знает об этом и будетудачно удаляйте и другие данные. Поэтому думайте о --force
как о «Я хочу уничтожить данные, и я точно знаю, какие данные уничтожаются». Но когда уничтоженные данные фиксируются, вы часто можетевосстановить старые коммиты из reflog - данные на самом деле осиротели вместо уничтоженных (хотя осиротевшие коммиты периодически удаляются).
Если вы не думаете, что уничтожаете данные, оставайтесьподальше от --force
... могут случиться плохие вещи .
Вот почему --force-with-lease
несколько безопаснее.