Webdevkin
Онлайн-курсы, статьи по веб-разработке и интернет-магазинам, уроки vue.js

Изучаем Git. Урок 19.
Зачем нужен git push --force
и что с ним может пойти не так

Урок, в котором мы узнаем, что такое git push --force,
зачем он нужен и почему им стоит пользоваться осторожно

Видеоурок

Конспект урока

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Затем нужен git push --force

Если запушить коммит на сервер, а после этого переписать историю коммитов (например, переименовать), то просто запушить ветку уже не получится. При этом нужно пушить ветку с форсом, вот так

Или краткая запись флажка --force

Что делает git push --force

Фактически эта команда заменяет содержимое ветки на сервере на то, что лежит в локальной ветке

Почему пуш с форсом может быть опасен

Потому что есть риск потерять часть истории коммитов, если запушить с форсом, предварительно не подтянув изменения с сервера, то есть не спулив ветку

Примеры, как можно потерять историю коммитов

Живой пример с потерей комимтов смотрите в видео. Там же описываются возможные варианты решения проблемы

7 советов по работе с историей коммитов и git push --force

1. При работе только локально переписывайте историю как угодно

2. Если работаете один и пушите ветку только для создания резервной копии кода, тоже можно переписывать историю и пушить с форсом

3. При совместной работе в ветке почаще делайте git pull --rebase. И всегда делайте его перед пушем

4. Не стоит переписывать историю коммитов при совместной работе над веткой

5. Если при совместной работе нужно подтянуть мастер в ветку, делайте это через gti merge master, а не через git rebase master. В этом случае не будет перезаписи истории и не придется пушить с форсом

6. Если все же хочется переписать историю в общей ветке, то делайте это уже непосредственно перед мерджем в мастер, когда все закончили работать над веткой

7. Никогда не пушьте с форсом в мастер

Спасибо за внимание и до встречи!

Следующий урок ⇨
Урок 20. git bisect, ищем баги с помощью git

⇦ Предыдущий урок
Урок 18. git rebase

Все уроки курса

* платные уроки

список обновляется...