Skip to main content

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

Используйте git push для отправки фиксаций в локальной ветви в удаленный репозиторий.

Около git push

Команда git push принимает два аргумента:

  • имя удаленного репозитория, например, origin;
  • Имя ветви, например main

Например:

git push REMOTE-NAME BRANCH-NAME

Например, вы обычно выполняете команду git push origin main для отправки локальных изменений в веб-репозиторий.

Переименование ветвей

Чтобы переименовать ветвь, используйте ту же команду git push, добавив к ней еще один аргумент: имя новой ветви. Например:

git push REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME

LOCAL-BRANCH-NAME отправляется в REMOTE-NAME, но при этом переименовывается в REMOTE-BRANCH-NAME.

Обработка ошибок не быстрого перемещения вперед

Если локальная копия репозитория не синхронизирована с вышестоящим репозиторием, в который выполняется отправка, вы получите следующее сообщение: non-fast-forward updates were rejected. В таком случае перед отправкой локальных изменений необходимо извлечь или "получить" изменения из вышестоящего репозитория.

Дополнительные сведения об этой ошибке см. в разделе Обработка ошибок не быстрого перемещения вперед.

Отправка тегов

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

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

git push REMOTE-NAME TAG-NAME

Чтобы отправить все теги, можно ввести следующую команду:

git push REMOTE-NAME --tags

Удаление удаленных ветви или тега

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

git push REMOTE-NAME :BRANCH-NAME

Обратите внимание на пробел, стоящий перед двоеточием. Эта команда напоминает ту, которая используется для переименования ветви. Тем не менее, она указывает Git выполнить пустую отправку в ветвь BRANCH-NAME в репозитории REMOTE-NAME. Таким образом, команда git push удаляет ветвь в удаленном репозитории.

Удаленные репозитории и вилки

Безусловно, вы уже знаете, что на GitHub можно создавать "вилки" репозиториев.

При клонировании собственного репозитория вы предоставляете ему удаленный URL-адрес, который Git использует для получения и отправки обновлений. Для совместной работы с исходным репозиторием следует добавить в локальный клон Git новый удаленный URL-адрес (обычно называется upstream):

git remote add upstream THEIR_REMOTE_URL

Теперь вы можете получать обновления и ветви из их вилки:

git fetch upstream
# Grab the upstream remote's branches
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://github.com/OCTOCAT/REPO
>  * [new branch]      main     -> upstream/main

После внесения локальных изменений вы можете отправить локальную ветвь в GitHub и инициировать запрос на вытягивание.

Дополнительные сведения о работе с вилками см. в разделе Синхронизация вилки.

Дополнительные материалы