Skip to main content

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

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

Около

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

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

Например:

git push REMOTE-NAME BRANCH-NAME

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

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

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

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

отправляется в , но при этом переименовывается в .

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

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

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

Разрешение заблокированных фиксаций

Чтобы обеспечить безопасность репозитория, который вы отправляете, GitHubавтоматически защищает вас от случайного фиксации секретов в общедоступных репозиториях на GitHub.com. Открытые секреты могут представлять серьезные риски безопасности для репозитория и цепочки поставок. Если GitHub обнаруживает, что фиксация, которую вы пытаетесь отправить, содержит поддерживаемый секрет, он блокирует отправку. Чтобы устранить блок, необходимо выполнить следующие действия.

  • Удалите секрет из фиксаций. Дополнительные сведения см. в разделе "Разрешение заблокированной отправки".
  • Следуйте предоставленному URL-адресу , чтобы просмотреть параметры, чтобы разрешить отправку. Дополнительные сведения см. в разделе об обходе защиты push-уведомлений

Дополнительные сведения о защите push-уведомлений см. в разделе AUTOTITLE.

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

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

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

git push REMOTE-NAME TAG-NAME

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

git push REMOTE-NAME --tags

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

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

git push REMOTE-NAME :BRANCH-NAME

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

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

Возможно, вы уже знаете, что вы можете «форкать» репозитории на #REF!.

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

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

Когда закончите с локальными изменениями, вы можете отправить локальную ветку в #REF! и инициировать pull request.

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

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

  • Глава "Удаленные репозитории" из книги "Pro Git"
  • Главная страница
  • AUTOTITLE
  • AUTOTITLE
  • Справочник по Git
  • AUTOTITLE