Задать вопрос
Все статьи / Полезная информация / Руководство по Git push
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Руководство по Git push

Команда git push — одна из ключевых в повседневной работе с системой контроля версий Git. Она используется для отправки изменений из локального репозитория в удаленный, чаще всего — на платформу вроде GitHub, GitLab или Bitbucket.

Работа в Git обычно строится по схеме: вы клонируете репозиторий, локально создаете и коммитите изменения, а затем отправляете их в общий репозиторий, чтобы другие разработчики могли их видеть и использовать. Именно для последнего шага и нужна команда git push.

Она важна при:

  • работе в команде;
  • синхронизации локальных изменений с удаленным репозиторием;
  • публикации новых веток;
  • развертывании на сервер при настройке CI/CD.

Как посмотреть все функции git push

Если вы хотите разобраться, на что способна команда git push, лучше всего начать с просмотра встроенной справки. Git предоставляет подробную документацию прямо в терминале, и получить к ней доступ можно всего одной командой:

git push --help

После этого откроется руководство, где перечислены все доступные опции:.

Справка по git push содержит:

  • список всех поддерживаемых флагов и их описания;
  • пояснение, как работает отправка веток и тегов;
  • примеры использования;
  • особенности взаимодействия с удаленными репозиториями.

Если вам удобнее читать в браузере, вы также можете воспользоваться онлайн-документацией на официальном сайте Git.

Как использовать git push 

Посмотрим, как использовать git push в разных ситуациях. 

Настройка удаленного репозитория

Перед тем как использовать git push, нужно установить связь между локальным репозиторием и удаленным. Это делается один раз в самом начале работы:

git remote add repository_name repository_link

В этой команде:

  • repository_name — это условное имя удаленного репозитория, которое вы будете использовать для обращения к нему в дальнейшем. Чаще всего выбирают имя origin.
  • repository_link — это точный URL-адрес удаленного репозитория, например, адрес вашего проекта на GitHub, GitLab или Bitbucket.

Пример:

git remote add origin https://github.com/user/project.git

Проверить, привязан ли репозиторий, можно командой:

git remote -v

Если все настроено правильно, в выводе вы увидите адрес удаленного репозитория.

Отправка изменений в удаленный репозиторий

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

git push repository_name branch_name

Здесь:

  • repository_name — имя удаленного репозитория (например, origin).
  • branch_name — имя ветки, в которую вы хотите отправить изменения. Обычно это основная ветка: master или main.

Пример отправки изменений:

git push origin master

Чтобы упростить дальнейшую работу и не указывать каждый раз имя репозитория и ветки, при первом пуше можно добавить флаг -u:

git push -u origin master

После этого все последующие пуши в текущей ветке можно осуществлять командой:

git push

Отправка локальной ветки в удаленную

Иногда при работе с Git нужно отправить не отдельные коммиты, а целиком локальную ветку в уже существующую или новую ветку удаленного репозитория. Подобная ситуация может возникнуть, если вы хотите создать отдельную ветку для разработки новых функций или исправления ошибок, а затем поделиться ею с командой или перенести изменения на сервер.

Чтобы отправить локальную ветку в удаленную, пропишите:

git push repository_name local_branch:remote_branch

Здесь:

  • repository_name — имя удаленного репозитория, например, origin;
  • local_branch — название вашей локальной ветки.
  • remote_branch — название ветки на сервере, куда вы хотите отправить изменения.

Публикация всех веток одновременно

Бывают ситуации, когда необходимо синхронизировать не одну, а сразу все локальные ветки с удаленным репозиторием — например, при первоначальной настройке проекта на новом сервере или при работе над несколькими фичами параллельно. Чтобы избежать отправки каждой ветки вручную, Git позволяет выполнить массовую отправку всех локальных веток одной командой:

git push repository_name --all

Где:

  • repository_name — имя удаленного репозитория, например, origin;
  • флаг --all указывает Git отправить все локальные ветки, а не только текущую.

Отправка текущей ветки

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

Для этого выполните:

git push repository_name HEAD

Где:

  • repository_name — это имя удаленного репозитория (чаще всего origin);
  • HEAD — указатель на текущую локальную ветку, из которой будет выполнена отправка.

Принудительная отправка изменений

Иногда при попытке отправки изменений в удаленный репозиторий Git возвращает ошибку, которая препятствует их публикации. Чаще всего это происходит, если кто-то другой уже внес изменения в ту же ветку и успел запушить их раньше вас. В результате возникает ошибка: 

To github.com:test/index.git
 ! [rejected]        branch_name -> branch_name (fetch first)
error: не удалось отправить некоторые ссылки в «github.com:test/index.git»

Это защита Git от потери чужих изменений. Однако в некоторых случаях, например, при работе в изолированной ветке или тестовой среде, может потребоваться принудительно опубликовать свою версию, полностью заменив содержимое ветки на сервере. Тогда вам понадобится команда:

git push --force

Важно! Она безвозвратно удалит изменения, сделанные другими пользователями в удаленной ветке, если они не были включены в ваш коммит. Используйте ее, только если уверены в том, что делаете. 

Если вы хотите избежать перезаписи чужих коммитов, но все же применить принудительную отправку только при условии, что удаленная ветка не изменилась с момента последней синхронизации, используйте более безопасный вариант:

git push –force-with-lease

Он поможет убедиться, что никто не успел внести изменения в ветку между вашим последним pull и текущей отправкой. Если такие изменения все же были, Git отменит принудительную публикацию, защитив чужую работу.

Удаление веток

Когда ветка становится ненужной, ее можно удалить:

git branch -d branch_name

Где branch_name — имя удаляемой локальной ветки. 

Если ветка не была объединена (merged), и вы все равно хотите ее удалить, используйте флаг -D — принудительное удаление:

git branch -D branch_name

Если нужно удалить ветку из удаленного репозитория, выполните:

git push --delete repository_name branch_name

Где:

  • repository_name — имя удаленного репозитория, например, origin;
  • branch_name — имя ветки, которую нужно удалить.

Команда удалит ветку с сервера, и она больше не будет доступна другим пользователям через git fetch или git pull.

Работа с тегами

Теги в Git используются для обозначения определенных точек в истории коммитов — например, релизов, важных версий или стабильных состояний проекта. Это своего рода ярлыки, которые помогают быстро ориентироваться в изменениях и возвращаться к нужным версиям кода.

Чтобы создать тег на текущем коммите, введите команду:

git tag tag_name

Где tag_name — это название тега (например, v1.0.0). Такой тег будет создан локально.

Если вы хотите сопроводить тег сообщением (то есть создать аннотированный тег), используйте:

git tag -a tag_name -m "Описание тега"

Чтобы отправить конкретный тег в удаленный репозиторий, выполните:

git push repository_name tag_name
  • repository_name — имя удаленного репозитория (чаще всего origin);
  • tag_name — имя ранее созданного тега.

Если вы хотите отправить все локальные теги сразу, вам понадобится команда:

git push –tags

Важно! Она также отправит теги, которые ранее могли быть удалены из удаленного репозитория, но все еще существуют локально.

Чтобы удалить тег из локального репозитория:

git tag -d tag_name

Чтобы удалить тег с сервера, используйте:

git push --delete repository_name tag_name

Где:

  • repository_name — имя удаленного репозитория;
  • tag_name — имя тега, который нужно удалить.

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

Расширенные возможности

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

Очистка локальных данных 

После удаления ветки или других объектов из удаленного репозитория Git может продолжать хранить их «следы» в локальной копии. Например, удаленная ветка будет по-прежнему отображаться в списке веток, хотя фактически она уже не существует на сервере.

Чтобы очистить локальные ссылки на удаленные объекты, которых больше нет на сервере, используйте команду:

git remote prune repository_name

Где repository_name — имя удаленного репозитория, чаще всего origin.

Она удалит все устаревшие ссылки на ветки, которые были удалены в удаленном репозитории, но все еще отображаются локально как remotes/origin/branch_name.

Важно! Команда не удаляет локальные ветки, только синхронизирует список удаленных. О том, как полностью удалить лишние локальные ветки (git branch), мы рассказали в предыдущем разделе. 

Проверка пушинга

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

Используйте: 

git push --dry-run

Что она делает:

  • эмулирует процесс push и показывает, что бы произошло при обычной отправке;
  • позволяет заранее увидеть возможные ошибки (например, отсутствие доступа, конфликты с ветками и так далее).

Что она точно не делает:

  • не отправляет никаких данных в удаленный репозиторий. 

Полезнее всего выполнять эту команду при работе с важными ветками или автоматизированными скриптами, где ошибка пуша может повлиять на других участников проекта.

Выполнение атомарного пушинга

При обычной отправке веток Git может частично принять изменения: одни ветки загрузятся успешно, другие — нет (например, из-за конфликтов или ограничений на сервере). Подобная разрозненность может привести к несогласованному состоянию репозитория, особенно в автоматизированных системах или при работе с интеграционными тестами.

Если вы хотите, чтобы все изменения были приняты одновременно — то есть либо все, либо ничего — используйте атомарный пушинг. Он гарантирует, что сервер применит все ветки сразу или полностью отклонит команду при любой ошибке.

Чтобы выполнить атомарный пушинг, используйте флаг –atomic:

git push — atomic repository_name branch_name

Где:

  • repository_name — имя удаленного репозитория (чаще всего origin);
  • branch_name — имя ветки, которую нужно отправить.

Если нужно отправить несколько веток одновременно, перечислите их через пробел. Например:

git push --atomic origin feature/login feature/profile

Если хотя бы одна из указанных веток не может быть запушена (например, из-за конфликтов или отсутствия прав), Git отклонит отправку всех веток. 

Атомарный пушинг особенно полезен при проверке хук-скриптов, систем CI/CD и при публикации нескольких связанных веток, где частичная отправка может нарушить логику работы проекта.

Вывод

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

Освоив базовые и продвинутые варианты использования push, вы сможете уверенно управлять процессом разработки, избегать конфликтов и поддерживать порядок в репозитории.

Предыдущая статья
Работа с файлами и каталогами в Linux
Следующая статья
Руководство по GraphQL для начинающих