Сколько раз вы с этим сталкивались?
git push
и ничего не получается, и это нормально, потому что git не дает вам обновить ветку, пока вы ломаете все.
Некоторые из вас могут делать это, НЕ ДЕЛАЙТЕ!
git push --force
это опасно, так как вы можете уничтожить чьи-то изменения и испортить репозиторий для всех остальных, кроме вас.
Обратите внимание, что git push
говорит вам, что это вызовет проблемы, а используя --force
, вы говорите ему, что вас это совершенно не волнует.
--force
может быть полезен в каких-то узких, ограниченных и очень редких ситуациях, но на повседневной основе вы не захотите его использовать.
Некоторые другие, более осторожные, используют следующее
git push --force-with-lease
Прочитайте следующие статьи о --force-with-lease
в сравнении с --force
:
- https://stackoverflow.com/questions/52823692/git-push-force-with-lease-vs-force
- https://www.delftstack.com/howto/git/git-push-force-with-lease/
Некоторые действительно осторожные (и использующие git версии выше 2.30) используют следующее
git push --force-with-lease --force-if-includes
Вот отличная статья о --force-if-includes
.
Различия действительно незначительны, но они добавили его по веским причинам.
Хорошо, но что дальше?
К сожалению, нет git-конфигурации, чтобы попросить git всегда использовать --force-with-lease
, когдаarticle
g изменяется.
Один из способов добиться этого — использовать псевдоним
[alias]
please = push --force-with-lease --force-if-includes
Поэтому в следующий раз, когда вы столкнетесь с ошибкой при git push
, вы можете очень вежливо попросить псевдоним git please
.
Я не знаю точно, откуда у меня этот псевдоним, возможно, от коллеги.
Написав этот пост, я нашел возможный источник статьи
https://www.freecodecamp.org/news/git-please-a182f28efeb5/