Около 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.
В таком случае перед отправкой локальных изменений необходимо извлечь или "получить" изменения из вышестоящего репозитория.
Дополнительные сведения об этой ошибке см. в разделе Обработка ошибок не быстрого перемещения вперед.
Разрешение заблокированных фиксаций
Чтобы обеспечить безопасность репозитория, который вы отправляете, GitHubавтоматически защищает вас от случайного фиксации секретов в общедоступных репозиториях на GitHub.com. Открытые секреты могут представлять серьезные риски безопасности для репозитория и цепочки поставок. Если GitHub обнаруживает, что фиксация, которую вы пытаетесь отправить, содержит поддерживаемый секрет, он блокирует отправку. Чтобы устранить блок, необходимо выполнить следующие действия.
-
**Удалите секрет** из фиксаций. Дополнительные сведения см. в разделе ["Разрешение заблокированной отправки](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-command-line#resolving-a-blocked-push)". -
**Следуйте предоставленному URL-адресу** , чтобы просмотреть параметры, чтобы разрешить отправку. Дополнительные сведения см. в разделе [об обходе защиты push-уведомлений](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-command-line#bypassing-push-protection)
Дополнительные сведения о защите push-уведомлений см. в разделе Управление защитой от push для пользователей.
Отправка тегов
По умолчанию команда 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 и инициировать pull request.
Дополнительные сведения о работе с вилками см. в разделе Синхронизация вилки.
Дополнительные материалы
-
[Глава "Удаленные репозитории" из книги "Pro Git"](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) -
[Главная страница `git remote`](https://git-scm.com/docs/git-remote.html) -
[AUTOTITLE](/get-started/git-basics/git-cheatsheet) -
[AUTOTITLE](/get-started/git-basics/git-workflows) -
[Справочник по Git](https://guides.github.com/introduction/git-handbook/) -
[AUTOTITLE](/get-started/using-git/troubleshooting-the-2-gb-push-limit)