Команды Git

git push

git push: отправить (запушить) изменения в удалённый репозиторий.

Команда git push используется для выгрузки содержимого локального репозитория в удалённый. Именно так коммиты переносятся из локального репозитория на сервер. Это противоположность git fetch, но если fetch импортирует коммиты в локальные ветки, то push экспортирует их в удалённые.

Команда push может перезаписать или затереть чужие изменения, особенно при принудительной отправке (force push), поэтому с ней стоит быть поосторожнее. Изменения отправляются в удалённый репозиторий и могут затронуть других разработчиков, работающих над тем же проектом.

Когда ты пушишь изменения, удалённая ветка обновляется твоими локальными коммитами. Если кто-то другой успел запушить свои изменения в ту же ветку, Git отклонит пуш и попросит сначала стянуть чужие коммиты. Это защищает от случайной затирки чужой работы.

Отправка коммитов — это основной способ поделиться кодом с командой, без которого совместная разработка в Git невозможна. Так все могут видеть твой код и внедрять его в свои репозитории.

Примеры

Представь: в локальном репозитории появились новые коммиты, и нужно поделиться ими с командой. Вот как это сделать.

После локального коммита изменений, отправь новые коммиты из локальной ветки main в одноимённую ветку удалённого репозитория origin:

git push origin main

Если ветки не существует, используй флаг -u (сокращение от --set-upstream), чтобы её создать:

git push -u origin new-feature

Отправить все локальные ветки в соответствующие удалённые ветки:

git push --all

Принудительная отправка (force push), перезаписывающая удалённую ветку твоими локальными изменениями:

Это ОПАСНОЕ действие, которое нужно применять с максимальной осторожностью, так как оно может затереть чужую работу.

В обычных ситуациях лучше сначала стянуть изменения с сервера, сделать ребейз (rebase) своих коммитов поверх обновлений (после git pull или git fetch), разрешая возможные конфликты. После этого изменения можно будет отправить без принудительной перезаписи.

git push --force