Git push — это консольная команда, которая передаёт в удалённый репозиторий изменения, сделанные в локальном репозитории. С помощью этой консольной команды разработчики дорабатывают основную ветку, добавляя новые фичи и внося исправления найденных багов и уязвимостей. Это удобно и при работе в одиночку — можно хранить свой код в облаке.
Теперь раскроем тему более подробно.
Что есть Git
Git-репозиторий — это набор файлов, которые хранятся в папке .git. Просто набор файлов, и ничего более.
Git сохраняет в commit (коммит) содержимое всех файлов, сохраняя изменения в objects. Если файл не менялся, используется старый objects. Получается, что в коммит попадают только те файлы, в которые вносились исправления. Это экономит место в хранилище, ускоряет процесс обновления и позволяет в любой момент переключиться на нужный коммит, так как все коммиты видны в истории изменений.
Благодаря Git разработчикам проще откатить свой проект на более старую версию, если что-то пошло не так. Также они могут сравнивать, анализировать или выгружать сделанные изменения в удалённый репозиторий.
Git push и все-все-все
Итак, команда git push необходима для передачи содержимого локального репозитория в центральный, к которому имеют доступ другие разработчики из команды. С ней нужно быть осторожным, пушить в репозиторий стоит лишь в том случае, когда вы твёрдо уверены том, что готовы перезаписать основную ветку. В обратном порядке работает команда git fetch: она импортирует коммиты из основного репозитория в локальные.
Если упростить, то процесс отправки пушей выглядит так:
git push origin master
- Действие: push, отправить
- Адресат: origin, сервер
- Объект: master, имя ветки
Как ещё можно использовать команду git push?
git remote add link
Начать нужно с организации связей между репозиториями. Эта команда связывает локальную и центральную ветки. Вместо repository_name указываете имя репозитория (как правило, это origin), а вместо link — URL-адрес. Только после этой команды ваш пуш будет уходить в нужную ветку.
git push
Команда отправки на публикацию выбранной ветки в удалённый репозитории (включая все коммиты и внутренние объекты). При этом создаётся локальная ветка в конечном репозитории. В целях защиты коммитов от перезаписи Git не позволяет публиковать данные, если в конечном репозитории невозможно выполнить быстрое слияние веток.
git push --force
Команда идентична приведённой выше с тем лишь отличием, что данные будут опубликованы в любом случае. Даже если ускоренное слияние выполнить невозможно. Используйте эту команду с осторожностью, так как принудительная перезапись способна удалить результат работы других людей.
git push --all
Отправка всех локальных веток на публикацию в удалённом репозитории.
git branch -D branch_name или git push origin :branch_name
Чтобы навести порядок, репозитории иногда нужно чистить. Вы можете полностью стереть ветку branch_name в локальном репозитории при помощи первой команды. Или стереть удалённую ветку — введя в консоли вторую команду.
Git умеет и показывать незапушенные коммиты. Чтобы их посмотреть, введите команду
git status
В ответ на эту команду терминал выдаст ответ вроде такого:
On branch master
Your branch is ahead of 'origin/master' by 3 commits.
(use "git push" to publish your local commits)
Это значит, что три коммита ещё не запушены, а предлагаемые в них изменения не внесены в репозиторий.
А что ещё можно делать с Git?
Удалять локальные данные и ветки, которых нет в центральном репозитории, добавлять и удалять теги на сервере, просматривать все удалённые репозитории, и каждый из них в отдельности. В Git есть большое количество инструментов, которые упрощают разработку и позволяют быстрее выкатывать конечный продукт. Чтобы увидеть весь перечень команд, поддерживаемых Git, введите в консоли команду
git push –help