Skip to main content

Poussée de commits vers un dépôt distant

Utilisez git push pour envoyer (push) des validations (commits) effectuées sur votre branche locale vers un référentiel distant.

À propos de git push

La commande git push prend deux arguments :

  • Un nom de dépôt distant, par exemple origin
  • Un nom de branche, par exemple main

Par exemple :

git push REMOTE-NAME BRANCH-NAME

Par exemple, vous exécutez généralement git push origin main pour pousser vos modifications locales vers votre dépôt en ligne.

Renommage des branches

Pour renommer une branche, vous utilisez la même commande git push, mais vous ajoutez un autre argument : le nom de la nouvelle branche. Par exemple :

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

Cela transfère LOCAL-BRANCH-NAME vers votre REMOTE-NAME, mais il est renommé comme REMOTE-BRANCH-NAME.

Gestion des erreurs autres que de type avance rapide

Si votre copie locale d’un dépôt n’est pas synchronisée avec le dépôt en amont vers lequel vous poussez, ou se trouve « derrière » celui-ci, vous obtiendrez un message indiquant non-fast-forward updates were rejected. Cela signifie que vous devez récupérer, ou « extraire », les modifications en amont avant de pouvoir pousser vos modifications locales.

Pour plus d’informations sur cette erreur, consultez Gestion des erreurs autres que de type avance rapide.

Résolution d’un commit bloqué

Pour maintenir la sécurité du référentiel vers lequel vous effectuez des envois, la protection des poussées de GitHub vous protège automatiquement contre la divulgation accidentelle de secrets dans les référentiels publics sur GitHub.com. Les fuites de secrets peuvent présenter des risques de sécurité grave pour votre référentiel et votre chaîne d’approvisionnement. Si GitHub détecte que la validation que vous tentez d’envoyer contient un secret pris en charge, l’envoi sera bloqué. Pour résoudre le blocage, vous devez :

  •           **Supprimez le secret** de votre ou vos commits. Pour en savoir plus, consultez [Résolution d’un push bloqué](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-command-line#resolving-a-blocked-push).
    
  • Ou suivre l’URL fournie pour afficher les options permettant d’autoriser l’envoi. Pour plus d’informations, consultez Contournement de la protection push.

Pour en savoir plus sur la protection push, consultez Gestion de la protection push pour les utilisateurs.

Poussée de balises

Par défaut, et sans paramètres supplémentaires, git push envoie toutes les branches correspondantes qui ont les mêmes noms que les branches distantes.

Pour remiser une seule balise, vous pouvez utiliser la même commande que pour remiser une branche :

git push REMOTE-NAME TAG-NAME

Pour pousser toutes vos balises, vous pouvez taper la commande :

git push REMOTE-NAME --tags

Suppression d’une branche ou balise distante

La syntaxe de suppression d’une branche est un peu obscure à première vue :

git push REMOTE-NAME :BRANCH-NAME

Notez qu’il y a un espace avant le signe deux-points. La commande ressemble aux mêmes étapes que celles que vous devez effectuer pour renommer une branche. Toutefois, ici, vous dites à Git de ne rien pousser dans BRANCH-NAME vers REMOTE-NAME. En raison de cela, git push supprime la branche sur le dépôt distant.

Dépôts distants et duplications

Vous savez peut-être déjà que vous pouvez « fork » référentiels sur GitHub.

Lorsque vous clonez un dépôt que vous possédez, vous lui fournissez une URL distante qui indique à Git où extraire et pousser des mises à jour. Si vous souhaitez collaborer avec le dépôt d’origine, vous ajoutez une nouvelle URL distante, généralement appelée upstream, à votre clone Git local :

git remote add upstream THEIR_REMOTE_URL

Vous pouvez maintenant récupérer des mises à jour et des branches à partir de leur fork.

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

Lorsque vous avez terminé d’apporter des modifications locales, vous pouvez pousser votre branche locale vers GitHub et lancer une demande de tirage.

Pour plus d’informations sur l’utilisation de forks, consultez Synchronisation d’une duplication.

Pour aller plus loin

  •           [Chapitre « Distants » du livre « Pro Git »](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes)
    
  •         [Page principale `git remote`](https://git-scm.com/docs/git-remote.html)
    
  •         [AUTOTITLE](/get-started/git-basics/git-cheatsheet)
    
  •         [AUTOTITLE](/get-started/git-basics/git-workflows)
    
  •         [Manuel Git](https://guides.github.com/introduction/git-handbook/)
    
  •         [AUTOTITLE](/get-started/using-git/troubleshooting-the-2-gb-push-limit)